使用ElementTree将新项目插入XML子元素的Python简便方法

阿尔基

我正在编辑配置文件,并想在结构中添加新的子元素。我遇到的问题是,在配置文件中,子元素具有相同的名称,但我还没有找到一种使用.find命令查找插入位置索引的方法。配置文件的示例在这里:

<?xml version="1.0" encoding="utf-8"?>

<ConfigurationFile>
  <Configuration ItemName="Parent1">
    <Category ItemName="Parent2">
      <Category ItemName="Parent3">
        <Category ItemName="ChildLevelToAdd">
          <Option ItemName="x" ValueType="6">5</Option>
          <Option ItemName="z" ValueType="6">0</Option>
          <Category ItemName="ChildCategory">
            <Option ItemName="a" ValueType="1"></Option>
            <Option ItemName="b" ValueType="2"></Option>
            <Option ItemName="c" ValueType="3">
            </Option>
            </Category>
        </Category>
      </Category>
</Category>

我正在尝试添加一个新的“ ChildToAdd”类别及其下的所有内容。

我尝试了以下代码进行索引,但似乎只能定位第一个子元素:

a = root.find('Configuration') #It is only possible to find sub-elements of the root
b = root.find('Category') #These generate a none type

我发现插入新类别元素的最佳方法是使用:

root[0][0][0].insert(0,ET.Element("Category", ItemName = "NewChild"))

然后,当我想向这个新创建的类别添加选项时,我使用:

root[0][0][0][0].insert(0,ET.Element("NewOption", ItemName = "NewVal", ValueType ="NewType"))

这似乎是一种非常不整洁的方法。我想知道是否有更干净的方法来查找和指定新子分类(类别)及其未来子元素(选项)的插入点?

har07

使用形式为XPath的表达式可在.//element_name上下文节点中的任何位置(本例中为根元素)查找元素。例如,以下代码应返回的<Category>任何位置element的第一个实例root

root.find('.//Category') 

您还可以使用XPath通过元素的属性值查找元素。例如,以下应返回属性值等于“ Parent3”的<Category>元素ItemName

root.find('.//Category[@ItemName="Parent3"]')

ElementTree支持此处介绍的其他XPath语法


我还建议将新元素存储在变量中,以便以后可以向其中添加子元素,而不必再次查询XML:

c = ET.Element("Category", ItemName = "NewChild")
c.insert(0,ET.Element("NewOption", ItemName = "NewVal", ValueType ="NewType"))

p = root.find('.//Category[@ItemName="Parent3"]')
p.insert(0, c)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python的ElementTree处理xml子对象

来自分类Dev

使用xml子对象,Python中的ElementTree

来自分类Dev

使用xml.etree.ElementTree XML解析子元素

来自分类Dev

python xml.etree.ElementTree追加到子元素

来自分类Dev

如何使用Hibernate插入新项目?

来自分类Dev

如何将新项目插入到 xml 文件中的频道

来自分类Dev

Python ElementTree:使用XPath通过子文本查找元素

来自分类Dev

如何使用ElementTree在父元素中的文本之间插入XML元素

来自分类Dev

使用elementtree遍历Python中子标记的XML子标记

来自分类Dev

如何使用xml.etree.ElementTree有条件地将属性插入Python中的节点

来自分类Dev

如何使用Python elementTree提取xml数据中的特定元素

来自分类Dev

使用python ElementTree库添加新的XML元素

来自分类Dev

Python和ElementTree:如何在XML中嵌套元素/子元素?

来自分类Dev

C ++:使用宏字符串将项目转换为动态变量的简便方法?

来自分类Dev

如何将一个全新的元素(在Python中使用ElementTree)添加到XML文件

来自分类Dev

当字符太长时,使用 ElementTree 插入 XML 元素时出现问题

来自分类Dev

Python:使用旧项目将新项目添加到列表的字典中

来自分类Dev

在Visual Studio Web项目上生成XML文档的简便方法

来自分类Dev

xml.etree.ElementTree >> Python >>如何访问子元素并进行断言

来自分类Dev

使用Python ElementTree解析XML

来自分类Dev

Python通过xml ElementTree添加新元素

来自分类Dev

Python XML ElementTree删除所有元素

来自分类Dev

使用react-dnd beautiful我如何将新项目插入数组,否则不起作用?

来自分类Dev

使用python删除XML中的子元素

来自分类Dev

使用 Powershell 将子元素添加到 XML 元素

来自分类Dev

如何使用Python和ElementTree检测<?xml version =“ 1.0” encoding =“ UTF-8”的根xml元素?>

来自分类Dev

如何使用Python和ElementTree检测<?xml version =“ 1.0” encoding =“ UTF-8”的根xml元素?>

来自分类Dev

尝试使用python在XML中插入元素,但不是将其添加为单独的元素,而是将代码添加为SubElement

来自分类Dev

如何使用XQuery将元素插入当前的XML文档中?

Related 相关文章

  1. 1

    使用python的ElementTree处理xml子对象

  2. 2

    使用xml子对象,Python中的ElementTree

  3. 3

    使用xml.etree.ElementTree XML解析子元素

  4. 4

    python xml.etree.ElementTree追加到子元素

  5. 5

    如何使用Hibernate插入新项目?

  6. 6

    如何将新项目插入到 xml 文件中的频道

  7. 7

    Python ElementTree:使用XPath通过子文本查找元素

  8. 8

    如何使用ElementTree在父元素中的文本之间插入XML元素

  9. 9

    使用elementtree遍历Python中子标记的XML子标记

  10. 10

    如何使用xml.etree.ElementTree有条件地将属性插入Python中的节点

  11. 11

    如何使用Python elementTree提取xml数据中的特定元素

  12. 12

    使用python ElementTree库添加新的XML元素

  13. 13

    Python和ElementTree:如何在XML中嵌套元素/子元素?

  14. 14

    C ++:使用宏字符串将项目转换为动态变量的简便方法?

  15. 15

    如何将一个全新的元素(在Python中使用ElementTree)添加到XML文件

  16. 16

    当字符太长时,使用 ElementTree 插入 XML 元素时出现问题

  17. 17

    Python:使用旧项目将新项目添加到列表的字典中

  18. 18

    在Visual Studio Web项目上生成XML文档的简便方法

  19. 19

    xml.etree.ElementTree >> Python >>如何访问子元素并进行断言

  20. 20

    使用Python ElementTree解析XML

  21. 21

    Python通过xml ElementTree添加新元素

  22. 22

    Python XML ElementTree删除所有元素

  23. 23

    使用react-dnd beautiful我如何将新项目插入数组,否则不起作用?

  24. 24

    使用python删除XML中的子元素

  25. 25

    使用 Powershell 将子元素添加到 XML 元素

  26. 26

    如何使用Python和ElementTree检测<?xml version =“ 1.0” encoding =“ UTF-8”的根xml元素?>

  27. 27

    如何使用Python和ElementTree检测<?xml version =“ 1.0” encoding =“ UTF-8”的根xml元素?>

  28. 28

    尝试使用python在XML中插入元素,但不是将其添加为单独的元素,而是将代码添加为SubElement

  29. 29

    如何使用XQuery将元素插入当前的XML文档中?

热门标签

归档