python - Python 中 ElementTree 中的兄弟节点

标签 python xml xpath nodes

我正在查看一段 XML,我想在其中添加一个节点。

<profile>
    <dog>1</dog>
        <halfdog>0</halfdog>
    <cat>545</cat>
        <lions>0</lions>
    <bird>23</bird>
        <dino>0</dino>
        <pineapples>2</pineapples>
    <people>0</people>
</profile>

使用上面的 XML,我可以将 XML 节点插入其中。但是,我无法将它插入到确切位置。

有没有办法找到我是否在某个节点旁边,无论是之前还是之后。假设我想添加 <snail>2</snail><dino>0</dino> 之间和 <pineapples>2</pineapples>节点。

使用 ElementTree我怎样才能找到我旁边的节点?我问的是 ElementTree或任何标准的 Python 库。不幸的是,lxml这对我来说是不可能的。

最佳答案

我认为使用 ElementTree 不可行,但您可以使用标准 python minidom 来实现:

# create snail element
snail = dom.createElement('snail')
snail_text = dom.createTextNode('2')
snail.appendChild(snail_text)

# add it in the right place
profile = dom.getElementsByTagName('profile')[0]
pineapples = dom.getElementsByTagName('pineapples')[0]
profile.insertBefore(snail, pineapples)

输出:

<?xml version="1.0" ?><profile>
    <dog>1</dog>
    <halfdog>0</halfdog>
    <cat>545</cat>
    <lions>0</lions>
    <bird>23</bird>
    <dino>0</dino>
    <snail>2</snail><pineapples>2</pineapples>
    <people>0</people>
</profile>

关于python - Python 中 ElementTree 中的兄弟节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21178266/

相关文章:

python - ValidateError 验证字段 arch 时发生错误 : Invalid XML for View Architecture

xml - 如何从所有 .xml 文件中删除所有包含字符串的行?

c# - 如何仅列出位于根节点正下方的 XML 节点

xml -/.. xpath在xsl模板中的作用

xml - XPath 查找项目

SCAR 的 Python 等效项

python - Keras导入模型AttributeError : 'NoneType' object has no attribute 'op'

html - 通过 XPath 1.0 连接可变数量的元素字符串值?

python - 用于拼写检查多个文档并报告结果的脚本

python - 什么时候使用 hash() 调用 __eq__?