XML用值替换空白空间

时间:2015-11-26 11:18:40

标签: python xml

我有问题要获取值为空的空格。我想将type="open"/>替换为testvalue="0"的值并更改类型:

        <test testvalue="0">Something3</test>
        <test testvalue="1" type="done">Hallo2</test>
        <test testvalue="2" type="done">Hallo2</test>
        <test testvalue="3" type="open"/>
        <test testvalue="4" type="open"/>

结果应该是:

        <test testvalue="0">Something</test>
        <test testvalue="1" type="done">Hallo</test>
        <test testvalue="2" type="done">Hallo</test>
        <test testvalue="3" type="done">Something</test>
        <test testvalue="4" type="done">Something</test>

是否有可能通过搜索testvalue="0"获取值并将type="open"/>替换为type="done">"(0 value)</test>来实现此目的。

2 个答案:

答案 0 :(得分:0)

假设您正在使用System.XML并且有一种阅读方式 XML文件。您需要指定节点测试,例如

'XmlNodeList testValues = new XmlNodeList("/test");'

这将返回列表中的所有测试节点。 然后通过执行

选择要覆盖的那些
 'testValues[numberOfNodeInList].InnerText = "What you want to put here ";'

注意:您必须使用

初始化您想要阅读的XML文档
   'XmlDocument xml = new XmlDocument();'
   'xml.load(path)'

然后你可以像我提到的那样使用XmlNodeList或XmlNode来获取节点。 请参阅此https://msdn.microsoft.com/en-us/library/system.xml(v=vs.110).aspx 看看你能用system.xml做什么;

答案 1 :(得分:0)

最简单的方法是使用XML解析器,谢天谢地Python has one built in

首先需要导入它,然后通过将文件路径传递给解析器来解析文件。请注意,您需要根标记才能为解析器生成此有效XML。否则你会收到错误:

ParseError: junk after document element: line 2, column 8

您可以轻松修改数据,只需在开头和结尾添加root标记即可。如有必要,可以通过编程方式完成。

<root>
        <test testvalue="0">Something3</test>
        <test testvalue="1" type="done">Hallo2</test>
        <test testvalue="2" type="done">Hallo2</test>
        <test testvalue="3" type="open"/>
        <test testvalue="4" type="open"/>
</root>

现在您可以使用解析器轻松解析它:

import xml.etree.ElementTree as ETree
xml = ETree.parse(path)

然后你可以迭代XML,检测是否element.text is None并将其写入路径:

for element in xml.getroot():
    if element.text is None:
        element.text = "Something"
xml.write(path)