使用 python 从文本文件中仅获取 xml 数据
get only xml data from text file using python
我有一个文本文件,其中有一些 XML 数据和一些 HTML 数据。两者都以“<”开头。现在我只想提取 XML 数据并将其保存在另一个文件中。我该怎么做?
文件示例:
xyz data:
<note>
<to>john</to>
<from>doe</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
xyz data
<bold>xyz</bold>
text
text
text
<bold>xyz</bold>
again XML data
注意:此文件为 .txt 格式。
我不会将您的整个输入视为 XML,而是 HTML 片段。 HTML 可以包含 non-standard 个元素,所以 <note>
等是可以的。
为方便起见,我建议用pyquery
(link) 来处理HTML。它的工作方式与 jQuery 几乎相同,因此如果您以前使用过它,应该很熟悉。
很漂亮straight-forward。加载您的数据,将其包装在 "<html></html>"
中,解析它,查询它。
from pyquery import PyQuery as pq
data = """xyz data:
<note>
<to>john</to>
<from>doe</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
xyz data
<bold>xyz</bold>
text
text
text
<bold>xyz</bold>
again XML data"""
doc = pq(f"<html><body>{data}</body></html>")
note = doc.find("note")
print(note.find("body").text())
打印 "Don't forget me this weekend!"
.
我有一个文本文件,其中有一些 XML 数据和一些 HTML 数据。两者都以“<”开头。现在我只想提取 XML 数据并将其保存在另一个文件中。我该怎么做?
文件示例:
xyz data:
<note>
<to>john</to>
<from>doe</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
xyz data
<bold>xyz</bold>
text
text
text
<bold>xyz</bold>
again XML data
注意:此文件为 .txt 格式。
我不会将您的整个输入视为 XML,而是 HTML 片段。 HTML 可以包含 non-standard 个元素,所以 <note>
等是可以的。
为方便起见,我建议用pyquery
(link) 来处理HTML。它的工作方式与 jQuery 几乎相同,因此如果您以前使用过它,应该很熟悉。
很漂亮straight-forward。加载您的数据,将其包装在 "<html></html>"
中,解析它,查询它。
from pyquery import PyQuery as pq
data = """xyz data:
<note>
<to>john</to>
<from>doe</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
xyz data
<bold>xyz</bold>
text
text
text
<bold>xyz</bold>
again XML data"""
doc = pq(f"<html><body>{data}</body></html>")
note = doc.find("note")
print(note.find("body").text())
打印 "Don't forget me this weekend!"
.