【发布时间】:2021-09-28 12:19:07
【问题描述】:
我正在使用 ElementTree 使用 Python 解析 xml 文件,我需要选择下面的标签,如 <PostalAddressText>,其中包含 <insert> 等标签。我怎么做?我需要得到满足条件的xml文件中所有相关标签名的列表。
这是我正在解析的 XML 片段(除内部标记外的实际文本已替换为 Lorem Ipsum):
<?xml version="1.0"?>
<data>
<PostalAddressText>123456,
<insert>
</insert>Lorem ipsum dolor sit amet, <insert>
</insert>consectetur adipiscing elit.<insert>
</insert>Etiam cursus ligula non malesuada fringilla.<delete> </delete><insert>
</insert>Quisque porta quam eu finibus pulvinar.<delete>or</delete><insert>er</insert> Mauris at semper urna.<delete>a</delete><insert>o</insert> Donec feugiat<delete>arcu purus</delete><insert>et lacinia</insert></PostalAddressText>
<PersonNameText>789012,
<insert>
</insert>Lorem ipsum dolor sit amet, <insert>
</insert>consectetur adipiscing elit.<insert>
</insert>Etiam cursus ligula non malesuada fringilla.<delete> </delete><insert>
</insert>Quisque porta quam eu finibus pulvinar.<delete>or</delete><insert>er</insert> Mauris at semper urna.<delete>a</delete><insert>o</insert> Donec feugiat<delete>arcu purus</delete><insert>et lacinia</insert>
</PersonNameText>
</data>
我已经尝试过了,但没有任何东西打印到控制台:
test_data = root.findall(".//")
for el in test_data:
if el.text == '*<insert>*':
print(el.tag, el.text)
【问题讨论】:
-
</diff:insert>只能在<com:PostalAddressText下吗? -
@balderman 不,可能有不同的标签,其下带有
。我只需要找到所有 “在里面”的标签 -
请发布一个有效的 xml。确保解析器可以解析它。
-
@balderman 我现在已经更改了 xml 示例,它可以解析成功。