gpt4 book ai didi

python - 用python解析xml中的CDATA

转载 作者:太空狗 更新时间:2023-10-29 18:28:06 25 4
gpt4 key购买 nike

我需要解析一个包含许多 CDATA block 的 XML 文件,我需要保留这些 block 以供以后绘图:

<process id="process1">
<log name="name1" device="device1"><![CDATA[timestamp value]]]></log>
<log name="name2" device="device2"><![CDATA[timestamp value, timestamp value, timestamp]]]></log>
</process>

我需要反复快速地执行此操作,并且我正在寻找执行此操作的最佳方法。我读过 ElementTree 是速度更快的方法,但我愿意接受其他建议。

最佳答案

以下是如何操作的两个示例:

from lxml import etree
import xml.etree.ElementTree as ElementTree

CONTENT = """
<process id="process1">
<log name="name1" device="device1"><![CDATA[timestamp value]]></log>
<log name="name2" device="device2"><![CDATA[timestamp value, timestamp value, timestamp]]></log>
</process>
"""

def parse_with_lxml():
root = etree.fromstring(CONTENT)
for log in root.xpath("//log"):
print log.text

def parse_with_stdlib():
root = ElementTree.fromstring(CONTENT)
for log in root.iter('log'):
print log.text

if __name__ == '__main__':
parse_with_lxml()
parse_with_stdlib()

输出:

timestamp value
timestamp value, timestamp value, timestamp
timestamp value
timestamp value, timestamp value, timestamp

它在这两种情况下处理的文本属性。

关于python - 用python解析xml中的CDATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13694143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com