2009-06-04 49 views
1

Structure <! - some text - >是XML中的注释,但是我想把这个文本放在另一个标签中,我不希望它被当作注释,就像文本一样(我需要它在视觉工作室的评论中),像这样:如何强制XML将特殊字符视为纯文本?

<summary> 
    (...) that contains 
    sections marked with <!--[section_name]--> at the beginning. 
</summary> 

我该怎么做?

回答

3

使用CDATA或转义字符使用& gt;或& lt;分别为<和>。

+0

visual studio不关心xml注释中的CDATA部分(只是将它当作另一个标签),但<和>工作。谢谢 – agnieszka 2009-06-04 12:01:58

0

将元素的内容包装在CDATA部分中。这告诉解析器将内容视为文字。

2

看看CDATA长期:http://en.wikipedia.org/wiki/CDATA

<summary> 
    <![CDATA[ 
    (...) that contains 
    sections marked with <\!--[section_name]--> at the beginning. 
    ]]> 
</summary> 
0

你应该换一个CDATA标签内的文本:

<summary> 
<![CDATA[ (...) that contains 
    sections marked with <!--[section_name]--> at the beginning.]]> 
</summary> 
3

使用这样的代码:

<xml> 
    <![CDATA[ 

    <!-- comment treated as plain text --> 

    ]]> 
</xml> 
0

无论是逃避字符...

<summary>Blah blah &lt;!-- not a comment --&gt; blah.</summary>

...或包裹他们PCDATA段内:

<summary><![CDATA[Blah blah <!-- blah -->]]></summary>
0

接受的答案是使用CDATA,但我强烈建议逃逸。如果您使用CDATA,则必须验证您的内容是否包含“]]>”,并以某种方式将其转义(在很多情况下不太可能),但如果您的程序存在将XML插入其他XML中,风险会增加)。

此外,使用串行生成你的XML,因为有很多挑剔的规则,几乎每个人都错了(我已经12年编写XML,不相信自己,让他们没事)。最简单的方法是构建一个DOM,然后将其转换为文本。