Python 使用lxml更改文本值
我有一个xml文件-这里是一个片段Python 使用lxml更改文本值,python,lxml,Python,Lxml,我有一个xml文件-这里是一个片段 <gmd_fileIdentifier> <gco_CharacterString>{0328cb65-b564-495a-b17e-e49e04864ab7}</gco_CharacterString> </gmd_fileIdentifier> <gmd_identifier> <gmd_RS_Identifier>
<gmd_fileIdentifier>
<gco_CharacterString>{0328cb65-b564-495a-b17e-e49e04864ab7}</gco_CharacterString>
</gmd_fileIdentifier>
<gmd_identifier>
<gmd_RS_Identifier>
<gmd_authority gco_nilReason="missing" />
<gmd_code>
<gco_CharacterString>0000</gco_CharacterString>
</gmd_code>
<gmd_codeSpace xmlns:gml="http://www.opengis.net/gml" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<gco_CharacterString>test</gco_CharacterString>
</gmd_codeSpace>
</gmd_RS_Identifier>
</gmd_identifier>
谢谢您必须查询整个节点,而不仅仅是其内容:
code = root.xpath('//gmd_identifier/gmd_RS_Identifier/gmd_code/gco_CharacterString')
然后,如果匹配,只需替换其文本并保存回XML文件:
if code:
# Replaces <gco_CharacterString> text
code[0].text = '{0328cb65-b564-495a-b17e-e49e04864ab7}'
# Save back to the XML file
etree.ElementTree(root).write('D:\test.xml', pretty_print=True)
如果代码:
#替换文本
代码[0]。文本=“{0328cb65-b564-495a-b17e-e49e04864ab7}”
#保存回XML文件
ElementTree(root).write('D:\test.xml',pretty\u print=True)
就这些!:) 我在etree.ElementTree(tree.write('D:\test.xml',pretty\u print=True)@HalilSiddique尝试将
etree.ElementTree(tree)
更改为etree.ElementTree(root)
。我在这里使用了一个稍微不同的代码进行了测试,很抱歉混淆了@哈利斯迪克,不客气!我很高兴能帮助你!:)
if code:
# Replaces <gco_CharacterString> text
code[0].text = '{0328cb65-b564-495a-b17e-e49e04864ab7}'
# Save back to the XML file
etree.ElementTree(root).write('D:\test.xml', pretty_print=True)