如何使用 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>
我正在尝试使用 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>