我们可以在XML文件中使用数字作为文本节点吗?

时间:2009-03-27 05:16:45

标签: xml

我们可以在XML文件中使用数字作为文本节点吗? 例如

<2>
 <abi>Zen</abi>
</2>

它给出了如下错误

5 个答案:

答案 0 :(得分:16)

XML元素必须遵循以下命名规则:

* Names can contain letters, numbers, and other characters
* Names cannot start with a number or punctuation character
* Names cannot start with the letters xml (or XML, or Xml, etc)
* Names cannot contain spaces

http://www.w3schools.com/xml/xml_elements.asp

答案 1 :(得分:1)

阅读xml spec

  

&符号(&amp;)和   左尖括号(&lt;)不得出现   在他们的字面形式,除了   用作标记分隔符,或用作标记分隔符   评论,处理指令或   CDATA部分。如果需要它们   在其他地方,他们必须逃脱使用   数字字符引用或   字符串“&amp; amp;”和“&amp; lt;”   分别。直角支架   (&gt;)可以使用。来表示   字符串“&amp; gt;”,并且必须为   兼容性,使用其中一个进行转义   “&amp; gt;”或字符引用   当它出现在字符串“]]&gt;”   在内容中,当该字符串不是   标记CDATA部分的结尾。

答案 2 :(得分:0)

简短回答:不。

你可以使用这样的东西,不过

<element2>
  <abi>Zen</abi>
</element2>

但这会产生一个非常丑陋的XML架构,你最终将限制在最大数量的元素。

我认为你应该这样做:

<element number="2">
  <abi>Zen</abi>
</element>

答案 3 :(得分:0)

不,你不能使用

XML命名规则

XML元素必须遵循以下命名规则:

1. Names can contain letters, numbers, and other characters
2. **Names cannot start with a number or punctuation character**
3. Names cannot start with the letters xml (or XML, or Xml, etc)
4. Names cannot contain spaces

可以使用任何名称,不保留任何单词。

根据第二条规则你不能在XML文件中使用数字作为文本节点,因为它的意思是标签以数字开头

for more detail

答案 4 :(得分:0)

实际上可以做到-您必须用unicode representation替换XML标记中的第一个数字字符,其中:

  • 0 = x0030
  • 1 = x0031
  • 2 = x0032
  • 3 = x0033
  • 4 = x0034
  • 5 = x0035
  • 6 = x0036
  • 7 = x0037
  • 8 = x0038
  • 9 = x0039

例如,节点<111222></111222>可以定义为:

<_x0031_11222>
</_x0031_11222>

Java内容存储库-Apache Jackrabbit项目以这种方式处理节点名称。它不漂亮,但可以回答问题。