[英]Simple XML Question
我在运行时创建XML,其架构就像
<Item>
<Content>Hi</Content>
</item>
问题是当我尝试将一些HTML内容保存到该标签时
<Item>
<Content><strong>Hi<strong></Content>
</item>
如何解决这个问题
提前致谢
正确的答案是不要在XML中嵌入标签。 XML仅应定义数据,解析器应将其放在正确的标记中,例如<strong></strong>
所有Item-> Contents。
另一种解决方案是使用XML转义符对标签进行转义: <
和>
。
我假设您有一个架构,该架构允许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.