gpt4 book ai didi

python - 从 python 中的行/Robust XML解析器中删除垃圾字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:29 25 4
gpt4 key购买 nike

我有一个包含损坏的 XML 的文件,行尾有一些我想删除的垃圾字符。这些垃圾字符不允许我使用 Python 的 XML 解析器。示例:

<request><pair><name>q</name><value><![CDATA[LOL]]></value></pair><pair><name>start</name><value>1</value></pair></request>�J I�i�Y�Y��'z�3�u�J�5��}���#Q/k;!�ˑ�9Q){_������ŐF
<request><pair><name>q</name><value><![CDATA[LOL2]]></value></pair><pair><name>start</name><value>1</value></pair></request>4/lIT�l��'�c�Oֲ�{�;��_?��(>͏Y�mP��

如何删除 </request> 之后的乱码?或者换句话说,如何删除 </request> 之间的字符串和 <request>

请注意 <request></request>只是一行所以

代码:

awk '/<request>/ , /<\/request>/' test.txt

不起作用。

在这种情况下,我的目的是在名称为“q”(LOL 和 LOL2)时提取值。因此,如果这可以轻松完成,我就不会为删除垃圾字符而烦恼。

感谢您的宝贵时间。

最佳答案

您可以使用 lxml 和 xpath 表达式提取数据-

import lxml
from lxml import etree
source_xml = " path to your xml file"
et = etree.parse(source_xml)
value = et.xpath("//document/request/pair[name='q']/value/text()")
print " ".join(value)

我使用您给定的 xml 示例进行了尝试,我的输出是 'LOL LOL2'

关于python - 从 python 中的行/Robust XML解析器中删除垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741857/

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