首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将父级追加到xml中

将父级追加到xml中
EN

Stack Overflow用户
提问于 2015-05-19 15:40:22
回答 2查看 60关注 0票数 0

我想在xml文件中再添加一个块。基本上,在父Tss下,我希望创建带有其属性的子功能Entry。下面是我想要添加到xml文件中的内容:

代码语言:javascript
复制
         <Entry>
            <System string = "rbs005019"/>
            <Type string = "SECURE"/>
            <User string = "rbs"/>
            <Password string = "rbs005019"/>
        </Entry>

这是xml文件

代码语言:javascript
复制
   <ManagedElement sourceType = "CELLO">
        <ManagedElementId string = "rbs005019"/>
        <Tss>
            <Entry>
                <System string = "rbs005019"/>
                <Type string = "NORMAL"/>
                <User string = "rbs"/>
                <Password string = "rbs005019"/>
            </Entry>
        </Tss>
    </ManagedElement>

因此,在梳理之后,应该如下所示:

代码语言:javascript
复制
  <ManagedElement sourceType = "CELLO">
        <ManagedElementId string = "rbs005019"/>
        <Tss>
            <Entry>
                <System string = "rbs005019"/>
                <Type string = "NORMAL"/>
                <User string = "rbs"/>
                <Password string = "rbs005019"/>
            </Entry>
            <Entry>
                <System string = "rbs005019"/>
                <Type string = "SECURE"/>
                <User string = "rbs"/>
                <Password string = "rbs005019"/>
            </Entry>
        </Tss>
        </ManagedElement>

我使用python2.6和lxml.etree

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 16:15:09

lxml有一个函数parentElem.insert(position, new_element),允许您在其父元素下插入一个新的子元素。您可以找到一个示例这里这里 (节元素是列表)

票数 1
EN

Stack Overflow用户

发布于 2015-05-19 17:04:16

下面是一个使用insert的示例:

代码语言:javascript
复制
In [31]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:current = """ <ManagedElement sourceType = "CELLO">
:        <ManagedElementId string = "rbs005019"/>
:        <Tss>
:            <Entry>
:                <System string = "rbs005019"/>
:                <Type string = "NORMAL"/>
:                <User string = "rbs"/>
:                <Password string = "rbs005019"/>
:            </Entry>
:        </Tss>
:    </ManagedElement>
:"""
:<EOF>

In [32]: current = etree.fromstring(current)

In [33]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:want = """
: <Entry>
:            <System string = "rbs005019"/>
:            <Type string = "SECURE"/>
:            <User string = "rbs"/>
:            <Password string = "rbs005019"/>
:        </Entry>
:"""
:<EOF>

In [34]: want = etree.fromstring(want)

In [35]: current.find('./Tss').insert(0,want)

In [36]: print etree.tostring(current, pretty_print=True)
<ManagedElement sourceType="CELLO">
        <ManagedElementId string="rbs005019"/>
        <Tss>
            <Entry>
            <System string="rbs005019"/>
            <Type string="SECURE"/>
            <User string="rbs"/>
            <Password string="rbs005019"/>
        </Entry>
        <Entry>
            <System string="rbs005019"/>
            <Type string="NORMAL"/>
            <User string="rbs"/>
            <Password string="rbs005019"/>
        </Entry>
       </Tss>
    </ManagedElement>

插入发生在以下一行:current.find('./Tss').insert(0,want)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30330186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档