忽略XML标记之间的文本

2024-09-30 12:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

""" 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文件或任何其他方法来从这个文件中获取数据。在


Tags: 文件texttestdatahtmlxmlutfhref
3条回答

您可以先更改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

之后,您就可以使用pythonxml解析器了

对您的XML片段进行了快速的视觉检查,我突然想到两件事:您的XML格式不好:

  • 结束符<xyz>元素缺少斜杠:它应该是</xyz>
  • 您的<a><iframe>元素也未闭合。在

<xyz>标记不平衡(有两个开始标记),并且test.xml行是假的。您的<a>标记没有关闭,并且它的href属性没有被引用。和你的iframe标签一样。您使用的解析器应该告诉您在哪里遇到错误。修好它,你就可以走了。在

如果要解析xml,首先必须确保它是well formed XML。通常,可以进行一些修改,使原本无法解析的代码段成为格式良好的代码段,这样您就可以使用标准解析器了。在

相关问题 更多 >

    热门问题