如何用+ sign编写xml属性?

时间:2018-07-16 14:54:32

标签: xml lxml

我需要一个带有的xml文件:

<xml>
    <per+1>value1</per+2>
    <per+2>value2</per2>
</xml>

我正在使用python lxml创建xml树。我使用bs4将字符串解析为xml。但是结果是

<per>+1&gt;value1</per>
<per>+2&gt;value2</per>

我尝试使用+,但没有结果。

2 个答案:

答案 0 :(得分:3)

您不能在XML属性(或元素)名称中使用+

首先,在XML术语中,您要询问 元素 名称; 属性 是不同的:

<elementName attributeName="attributeValue"/>

尽管如此,元素名称和属性名称都必须遵循W3C XML BNF for component names

Name          ::= NameStartChar (NameChar)*
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] |
                  [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] |
                  [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] |
                  [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] |
                  [#x10000-#xEFFFF]
NameChar      ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] |
                  [#x203F-#x2040]

不包括+字符。您唯一的选择是列出的那些字符。也许使用_字符或诸如Plus之类的字符串,或者放弃尝试在名称中传达+概念,并在元素字符串值中使用属性或字符。

答案 1 :(得分:0)

不能。 XML在标记或属性名称中不支持+个字符。