假设我有一段类似于以下内容的XML:
<row Johnson&Johnson="good" M&Ms ="bad" /> --self closing tag
或
<row Johnson&Johnson="good" M&Ms ="bad" </row>
我逃脱了&amp;属性名称中的字符值,但它似乎仍然是非法的。您是否可以使用转义的非法字符来归因NAME值?如果是这样的话?提前致谢。
答案 0 :(得分:2)
不,你不能以任何形式的名字使用&符号。因此,您根本就没有XML。你刚刚得到了一些不等于格式良好的XML文本。
考虑使用更像以下内容的替代方法:
<products>
<product name="Johnson&Johnson" quality="good"/>
<product name="M&Ms" quality="bad" />
</products>
答案 1 :(得分:2)
&,0x26:
Section 2.3, "Common Syntactic constructs"
[4]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]
[4a]NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]