忽略XML标记之间的文本
问题描述:
""" 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标记之间的文本
答
您可以先修改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
答
对你的XML片段进行快速的视觉检查,以及两件事情跳到我的身上:你的XML没有形成良好:
- 您的交易
<xyz>
元素缺少它的斜线:它应该是</xyz>
- 你
<a>
和元素也未关闭。
答
的<xyz>
标签不均衡(有两个开放标签)和test.xml
线是虚假的。您的<a>
标记未关闭,它的href
属性未被引用。和你的iframe标签一样。您正在使用的解析器应该告诉您它遇到错误的位置。修复它,然后你会很好去。
如果你想解析xml,首先你必须确保它是well formed XML。通常情况下,可以做一些小小的按摩来制作一个不可解析的代码片段,以便您可以使用标准的解析器。
您应该在每行之前放置四个空格来格式化代码。您也可以选择它并单击“{}”按钮。在[Markdown编辑帮助](http://stackoverflow.com/editing-help)页面提供更多有用的提示。 – 2011-04-20 09:36:50