当我尝试在xml-tag的InnerText部分中插入<或>等符号时,在通过xmlDocument.InnerXml访问xml之后,这些符号被替换为他们的html代码,例如&lt或&gt;有人可以向我解释这个也许给我一个解决这个问题的方法?
亲切的问候
塞巴斯蒂安
必须转义这些符号,因为尖括号用作文档结构 . 要解决这个问题,请确保正确解码文本 .
您也可以尝试将文本括在CDATA section中 .
根据XML文件中的定义(请参阅spec), < 用于打开元素 . 同样, > 用于关闭元素 .
<
>
为了允许这些(以及一些其他字符)出现在XML文件中,它们被编码为entities .
您应该会发现这一切都是透明处理的 - 如果您将 < 放入元素的内容中,它将被存储为 < ,然后在您再次获取内容时将其翻译回来 .
<
如果这是因为你试图在输出文件中添加额外的元素而妨碍你,那么你应该看看用于直接创建元素的各种API - 编写文本将会失败 .
这取决于您希望在内部文本中显示的内容 . 如果您实际上是在尝试插入新元素,那么最好将新节点添加到Nodes集合(type = element) . 如果您确实希望将文本呈现为<和>,那么这已经完全符合您的需求 .
如果您能够解释您希望通过此操作获得的最终结果,我们可以准确地告诉您需要做什么 .
4 回答
必须转义这些符号,因为尖括号用作文档结构 . 要解决这个问题,请确保正确解码文本 .
您也可以尝试将文本括在CDATA section中 .
根据XML文件中的定义(请参阅spec),
<
用于打开元素 . 同样,>
用于关闭元素 .为了允许这些(以及一些其他字符)出现在XML文件中,它们被编码为entities .
您应该会发现这一切都是透明处理的 - 如果您将
<
放入元素的内容中,它将被存储为<
,然后在您再次获取内容时将其翻译回来 .如果这是因为你试图在输出文件中添加额外的元素而妨碍你,那么你应该看看用于直接创建元素的各种API - 编写文本将会失败 .
这取决于您希望在内部文本中显示的内容 . 如果您实际上是在尝试插入新元素,那么最好将新节点添加到Nodes集合(type = element) . 如果您确实希望将文本呈现为<和>,那么这已经完全符合您的需求 .
如果您能够解释您希望通过此操作获得的最终结果,我们可以准确地告诉您需要做什么 .