2011-04-20 121 views
0
""" test.xml 

<xyz> 
     <pqr> 
     <abc><a href="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwvYT4=</abc> 
     </pqr> 
     <pqr> 
     <abc><iframe src="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwv</abc> 
     </pqr> 
<xyz> 

"""" 

当我使用这个XML文件并在python中解析时,它显示错误(不正确)。我怎样才能解析这个XML文件或任何其他方法从这个文件中获取数据。忽略XML标记之间的文本

+0

您应该在每行之前放置四个空格来格式化代码。您也可以选择它并单击“{}”按钮。在[Markdown编辑帮助](http://stackoverflow.com/editing-help)页面提供更多有用的提示。 – 2011-04-20 09:36:50

回答

2

您可以先修改XML和使用CDATA来封装格式不正确的XML

例如:

<xyz> 
     <pqr> 
     <abc><![CDATA[<a href="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwvYT4=]]></abc> 
     </pqr> 
     <pqr> 
     <abc><![CDATA[<iframe src="data:text/html;charset=utf-8,base64,JTNjc2NyaXB0JTNlYWxlcnQoIlhTUyIpO2hpc3RvcnkuYmFjaygpOyUzYy9zY3JpcHQlM2UiPjwv]]></abc> 
     </pqr> 
<xyz> 

见:http://www.w3schools.com/xml/xml_cdata.asp

这个你可以使用Python中的XML解析器

+0

现在它的作品谢谢szymon – 2011-04-20 09:50:48

0

对你的XML片段进行快速的视觉检查,以及两件事情跳到我的身上:你的XML没有形成良好:

  • 您的交易<xyz>元素缺少它的斜线:它应该是</xyz>
  • <a>和元素也未关闭。
1

<xyz>标签不均衡(有两个开放标签)和test.xml线是虚假的。您的<a>标记未关闭,它的href属性未被引用。和你的iframe标签一样。您正在使用的解析器应该告诉您它遇到错误的位置。修复它,然后你会很好去。

如果你想解析xml,首先你必须确保它是well formed XML。通常情况下,可以做一些小小的按摩来制作一个不可解析的代码片段,以便您可以使用标准的解析器。