繁体   English   中英

简单的XML问题

[英]Simple XML Question

我在运行时创建XML,其架构就像

<Item>
    <Content>Hi</Content>
</item>

问题是当我尝试将一些HTML内容保存到该标签时

<Item>
    <Content><strong>Hi<strong></Content>
</item>

如何解决这个问题

提前致谢

正确的答案是不要在XML中嵌入标签。 XML仅应定义数据,解析器应将其放在正确的标记中,例如<strong></strong>所有Item-> Contents。

另一种解决方案是使用XML转义符对标签进行转义: &lt; &gt;

我假设您有一个架构,该架构允许Item元素包含Content元素,并且Content元素只能包含text或CDATA或类似内容。 在这种情况下,您有两个选择。

首先,您可以以某种方式转义html。 您可以按照Fredrik上面的建议使用CDATA部分。 另外,您也可以按照上述方法避免包围。 这两种解决方案都可以使您继续将Content的内容视为文本。 这样就可以为您的元素提供一个简单的内容模型。

另外,您可以扩展架构以允许xhtml元素作为Content元素的一部分。 在这里提出了一种解决方法。 当然,如果您的内容是html而不是xhtml,则此方法将无效。

确实,选择取决于您是否希望能够将嵌入式html解析为xml的一部分。 如果您希望将其作为文本,请对其进行转义。 如果希望它可解析,请扩展您的架构。

您可以将HTML内容嵌入CDATA部分中:

<Item><![CDATA[  <Content><strong>Hi</strong></Content> ]]></item>

在将HTML字符串添加到xml之前,需要对其进行正确的转义。 如果您使用的是.NET,则可以使用以下几种方法

小于标记(<)必须使用&lt;进行转义。 和>标记(&gt;)相同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM