如何使用 lxml 向 xml 标签添加特殊字符?

How to add special characters to xml tag using lxml?

我正在尝试使用 lxml 创建 xml 文件,如下所示

from lxml import etree
var = "xyz"
root = etree.Element("Demo_root")
a = etree.SubElement(root, "Demo2='"+var+"'") 

获取错误为

invalid tag name

在代码的第 4 行,我无法给出任何特殊字符。那我该怎么处理呢。

我的文件应该看起来像

<x Name="dem1">
  <y Name="dem2" Value="1"/>
  <y Name="dem3" Value="2"/>        
</x>

看起来您想要做的是创建一个属性而不是子元素。 (仍然很难判断,因为 XML 中的 element/attribute 名称与代码中的名称不匹配。)

要创建属性,您可以使用 set()

在您的示例中创建 XML 的示例...

from lxml import etree

var = "dem1"  # A variable isn't needed, but I included it anyway since your original code had it.

root = etree.Element("x")
root.set("Name", var)

for x in range(1, 3):
    elem = etree.Element("y")
    elem.set("Name", "dem{}".format(x + 1))
    elem.set("Value", str(x))
    root.append(elem)

etree.dump(root)

输出...

<x Name="dem1">
  <y Name="dem2" Value="1"/>
  <y Name="dem3" Value="2"/>
</x>