Python:LXML - 如何将特定标签下的元素添加到现有元素树中

Python:LXML - How to add an element under a specific tag to an existing element tree

提问人:Francis Bacon 提问时间:10/13/2022 最后编辑:Francis Bacon 更新时间:10/14/2022 访问量:129

问:

我使用以下代码尝试将元素附加到 tag 下。resources

parser = Et.XMLParser(strip_cdata=False)
xml_tree = Et.parse(destination_xml_file_full_path, parser=parser)
xml_tree_root_element = xml_tree.getroot()

string_element = Et.Element('string')
string_element.set('name', string_id)
string_element.text = ''

xml_tree_root_element.append(string_element)

# Write the modified xml file.
xml_tree.write(destination_xml_file_full_path, encoding='UTF-8', xml_declaration=False, pretty_print=True)

预期:

<resources>
    <string name="cbp_payment_successful">Payment Successful</string>
    ...
    <string name="string id"></string> // wanna to add this line of code

</resources>

实际:

<resources>
    <string name="cbp_payment_successful">Payment Successful</string>
    ...

<string name="string id"></string> // wanna to add this line of code</resources>

我已经知道我可以使用 Android Studio 格式化来实现这一点,但是有没有更好的方法可以仅使用 Python 来实现它?

想法 1:

找到 resources 标签并在标签下附加一个元素,但是否有任何 API 可以做到这一点?

想法 2:

找到最后一个 String 元素,获取 String 元素的根,然后使用 Insert

python android xml 解析 lxml

评论

0赞 mzjn 10/13/2022
所以这是关于漂亮印刷的?
0赞 mzjn 10/13/2022
stackoverflow.com/q/749796/407651,stackoverflow.com/q/5086922/407651
0赞 Francis Bacon 10/14/2022
@mzjn不确定,但无论如何都不起作用。pretty_print=True
0赞 mzjn 10/14/2022
你试过这个吗?stackoverflow.com/a/9612463/407651
0赞 Francis Bacon 10/17/2022
追加 将出现运行时错误。您知道如何与现有的组合吗?@mzjnremove_blank_text xml_tree.write(destination_xml_file_full_path, encoding='UTF-8', xml_declaration=False, pretty_print=True)remove_blank_text

答: 暂无答案