簡體   English   中英

在lxml中的元素構建器內的循環中插入元素列表

[英]insert list of elements in loop inside element builder in lxml

我有一個使用lxml.etree.E模塊構建的 XML 正文。 看起來像這樣 -

E.TAGA(
    E.TAGB(
        E.TAGC(
            ...list goes here...
        )
    )
)

這種構造方法不能改變。

我有一個字符串列表["textA", "textB", "textC"]必須添加到TAGC下的 xml 中(如上所示),每個條目都包含在另一個標簽TAGD中。 我試過使用fromStringlist但它不起作用。 請幫忙。 希望我的問題很清楚。

這就是最終 XML 代碼的顯示方式 -

E.TAGA(
    E.TAGB(
        E.TAGC(
            E.TAGD(textA),
            E.TAGD(textB),
            E.TAGD(textC)
        )
    )
)

這是所需的輸出 -

<TAGA>
    <TAGB>
        <TAGC>
            <TAGD>textA</TAGD>
            <TAGD>textB</TAGD>
            <TAGD>textC</TAGD>
        </TAGC>
    </TAGB>
</TAGA>

使用 * 運算符解壓縮函數調用中的列表...

也就是說,生成一個包含您的列表

E.TAGD(textA),
E.TAGD(textB),
E.TAGD(textC)

然后將帶有 * 前綴的列表(解包運算符)作為 arg 提供給 E.TAGC

我有一個使用lxml.etree.E模塊構造的 XML 主體。 看起來是這樣的——

E.TAGA(
    E.TAGB(
        E.TAGC(
            ...list goes here...
        )
    )
)

這種構造方法不能改變。

我有一個字符串列表["textA", "textB", "textC"]必須將它們添加到TAGC下的 xml(如上所示),每個條目都包含在另一個標簽TAGD 我曾嘗試使用fromStringlist但它不起作用。 請幫忙。 希望我的問題很清楚。

這就是最終的 XML 代碼應該如何出現 -

E.TAGA(
    E.TAGB(
        E.TAGC(
            E.TAGD(textA),
            E.TAGD(textB),
            E.TAGD(textC)
        )
    )
)

這是所需的輸出 -

<TAGA>
    <TAGB>
        <TAGC>
            <TAGD>textA</TAGD>
            <TAGD>textB</TAGD>
            <TAGD>textC</TAGD>
        </TAGC>
    </TAGB>
</TAGA>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM