我有以下xml:
UPPER
<Item>
<Platform>ITUNES</Platform>
<PlatformID>102224185</PlatformID>
<Info>
<LanguageOfMetadata>EN</LanguageOfMetadata>
<Name>COMMANDER IN CHIEF</Name>
<Studio>ABC</Studio>
</Info>
<Type>TVSERIES</Type>
</Item>
所有值的最快捷方式是什么?例如:
<input type="text" ng-init="Id='1'" ng-model="Id" />
答案 0 :(得分:4)
您可以找到所有元素并在每个元素的文本上调用upper()
:
import lxml.etree as ET
data = """<Item>
<Platform>itunes</Platform>
<PlatformID>102224185</PlatformID>
<Info>
<LanguageOfMetadata>EN</LanguageOfMetadata>
<Name>Commander In Chief</Name>
<Studio>abc</Studio>
</Info>
<Type>TVSeries</Type>
</Item>
"""
root = ET.fromstring(data)
for elm in root.xpath("//*"): # //* would find all elements recursively
elm.text = elm.text.upper()
print(ET.tostring(root))
打印:
<Item>
<Platform>ITUNES</Platform>
<PlatformID>102224185</PlatformID>
<Info>
<LanguageOfMetadata>EN</LanguageOfMetadata>
<Name>COMMANDER IN CHIEF</Name>
<Studio>ABC</Studio>
</Info>
<Type>TVSERIES</Type>
</Item>
这虽然不包括例如当你有一个元素尾部的情况 - 例如拥有<Studio>ABC</Studio>test
而非<Studio>ABC</Studio>
。为了支持这一点,也将以下内容放在for循环中:
elm.tail = elm.tail.upper() if elm.tail else None
答案 1 :(得分:-1)
假设您可以解析XML文件,您可以使用python中内置的.upper()
函数重写内容。你可以这样称呼它:
"mystring".upper()
。