包含值文本中的XML标记的XML字符串元素

时间:2015-02-26 14:36:18

标签: xml tags

我想要一个包含以下内容的字符串元素:

<UmlMessage>"@MainApp -> ControlThread : <font color=red><b>NET_SET_REQ</b>"</UmlMessage>

因此元素UmlMessage值为:"@MainApp -> ControlThread : <font color=red><b>NET_SET_REQ</b>"

我添加了引号,但这没有帮助。我收到一个奇怪的错误:

XMLSyntaxError: AttValue: " or ' expected, line 25, column 54

我认为这与在值中使用类似XML的标记有关。但是我希望将要解析的标签之间的内容作为字符串文字...这可能吗?

2 个答案:

答案 0 :(得分:2)

如果字符串内容包含“有问题”的字符,请将其包装在CDATA元素中:

<UmlMessage><![CDATA["@MainApp -> ControlThread : <font color=red><b>NET_SET_REQ</b>"]]></UmlMessage>

答案 1 :(得分:1)

选项1 ,假设您并不需要整个消息的双引号,并且您不介意将UmlMessage的内容解析为XML:

<UmlMessage>@MainApp -> ControlThread : <font color="red"><b>NET_SET_REQ</b></font></UmlMessage>

选项2 ,如上所述,但在消息周围加上双引号:

<UmlMessage>"@MainApp -> ControlThread : <font color='red'><b>NET_SET_REQ</b></font>"</UmlMessage>

选项3 ,如果您不希望将UmlMessage的内容解析为XML,无论您是否需要周围的引号:

<UmlMessage><![CDATA["@MainApp -> ControlThread : <font color=red><b>NET_SET_REQ</b></font>"]]></UmlMessage>
顺便说一句,即使浏览器会容忍属性值(color=red)周围缺少分隔符,我仍然建议使用它们,以便你的标记是格式良好的XML。同样,我特别建议明确关闭font元素,并在上面的示例中为您完成。