【问题标题】:XML string element that contains XML tags within the value text在值文本中包含 XML 标记的 XML 字符串元素
【发布时间】:2015-02-26 14:36:17
【问题描述】:

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

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

所以元素 UmlMessage 的值将是:"@MainApp -&gt; ControlThread : &lt;font color=red&gt;&lt;b&gt;NET_SET_REQ&lt;/b&gt;"

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

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

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

【问题讨论】:

    标签: xml tags


    【解决方案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 元素,并在上面的示例中为您这样做。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-29
        • 1970-01-01
        • 2015-10-23
        相关资源
        最近更新 更多