尝试将一些XML加载到文档中:
<Custom AttributeA='' AttributeB='Bob' AttributeC='HUNTERS' COMPANY EMPLOYEES' 403B PLAN' />
然后当我尝试将其添加到文档中时:
XmlDocument xmlCustom = new XmlDocument();
xmlCustom.LoadXml(customNode);
我最终收到一条错误消息System.Xml.XmlException:'COMPANY'是一个意外的令牌。预期的标记是'='。 AttributeC的价值应该是:猎人的公司员工'403B计划
我尝试在加载XML之前替换',但它替换了所有的撇号,而AttributeA =''同样无效。
编辑:是的,我会同意形成不良,但这是我必须要合作的。
答案 0 :(得分:3)
您可以使用
<Custom AttributeC="HUNTERS' COMPANY EMPLOYEES'' 403B PLAN"/>
或
<Custom AttributeC="HUNTERS' COMPANY EMPLOYEES' 403B PLAN"/>
甚至
<Custom AttributeC='HUNTERS' COMPANY EMPLOYEES' 403B PLAN'/>
答案 1 :(得分:2)
这个标记有很多问题。
这不是XML。 XML使用双引号作为属性(好吧,我刚学会单引号也可以)。但它需要在属性名称和值之间使用equals-Signs(请参阅上一个属性)。此外,属性名称不能包含空格,并且必须分配一个值,与HTML不同。
哦,如果没有结束标记,则必须使用/>
结束该行,而不仅仅是>
。
如果你想在你的属性中有一个撇号,你可以使用转义,就像这里:
<gangster name="George "Shotgun" Ziegler">
或使用单引号(以及转义的单引号):
<ad text='I love McDonald's'>
或者当您想要属性中的单引号时使用双引号:
<ad text="I love McDonald's">
答案 2 :(得分:1)
将撇号编码为'
<Custom AttributeA='' AttributeB='Bob' AttributeC='HUNTERS' COMPANY EMPLOYEES' 403B PLAN' />
答案 3 :(得分:0)
属性名称不允许使用空格。你必须输入这样的东西:
<Custom AttributeA='' AttributeB='Bob' AttributeC='HUNTERS' COMPANY EMPLOYEES' 403B PLAN'/>