【发布时间】:2018-07-10 19:20:47
【问题描述】:
我需要更正数百个 XML 文件。
假设文件是这种格式:
<?xml version="1.0" encoding="UTF-8"?>
<MyData xmlns="urn:iso" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso">
<Hdr>
<AppHdr xmlns="urn:iso" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso">
<St>A</St>
<To>Z</To>
</Hdr>
<Data>
<Document xmlns="urn:iso" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso">
<CountryReport>
<RptHdr>
<RpDtls>
<Dt>2018-07-10</Dt>
</RpDtls>
</RptHdr>
<Country>
<Id>PT</Id>
<FullNm>Portugal</FullNm>>
<Bd>
<Tp>US</Tp>
</Bd>
</Country>
<Country>
<Id>ESP</Id>
<FullNm>Spain</FullNm>>
<Bd>
<Tp>EUR</Tp>
</Bd>
</Country>
</CountryReport>
</Document>
</Data>
</MyData>
我需要做的替换如下:
- 如果 Country ID 是 PT,我需要将 Bd/Tp 替换为“EUR”。
我尝试了使用 python 使用 sed、xmllint 和 ElementTrees 的不同方法,但没有成功。
我可能使用了错误的 xpath,但很遗憾我无法弄清楚。
你能帮忙吗?
【问题讨论】:
-
您好,欢迎您。也许尝试发布您尝试过的内容以及您怀疑有“错误xpath”的地方。当人们看到迄今为止所付出的努力并且可以帮助解决您遇到的特定问题时,他们通常会更乐意提供帮助。
标签: python xml parsing element elementtree