LINQ to XML XElement 节点
我正在使用 LinqXML 创建 XML 文件。
string value = "Steet,<BR> </BR> City";
XElement address = new XElement("Address", value);
一旦我写入 xml 文件,地址值就会显示为 Steet,<BR> </BR>
我只需要像原来一样。 (即使形状不太好)
I am creating a XML file using LinqXML.
string value = "Steet,<BR> </BR> City";
XElement address = new XElement("Address", value);
Once I write the xml file, the address value is shown as Steet,<BR> </BR>
I just need as it is like original. (Even if it does not well form)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果这些内容的格式不正确,那么就不要指望能够将其视为 XML。因此,如果您想将格式不正确的 HTML 标记放入 XML 元素中,请考虑使用 CDATA 部分,例如,
这将导致:
如果您想将值解析为 XML,则使用片段模式下的 XmlReader 执行此操作,例如,
这将导致
Well if that stuff is not well-formed then don't expect to be able to treat it as XML. Thus if you want to put not well-formed HTML markup into an XML element then consider to use a CDATA section e.g.
which will result in
If you want to parse the value as XML then do so with an XmlReader in fragment mode e.g.
That results in
我认为你不需要改变任何事情。
<
和>
是 XML 中尖括号的转义方式。当读取字符串值时,XML 解析器会自动将它们转回文字尖括号。 CDATA 只是转义尖括号的另一种方式。在这种情况下,他们都完成了完全相同的事情。如果您使用原始代码并使用 XML 解析器读取节点的值,则返回的字符串将为
Street,
城市
。更改转义为 CDATA 的方法实际上不会改变任何内容,除了使 XML(可以说)更难阅读之外。如果您希望
标记实际上成为 XML 文档的一部分,那么您应该使其成为文档的一部分。也就是说...I don't think you need to change anything.
<
and>
are how angle brackets are escaped in XML. XML parsers turn them back into literal angle brackets automatically when reading string values. CDATA is simply another way of escaping the angle brackets. They both accomplish exactly the same thing in this case. If you take your original code and read the value of the<Address>
node with an XML parser, the string returned will beStreet,<BR> </BR> City
. Changing the method of escaping to CDATA doesn't actually change anything except to make your XML (arguably) harder to read.If you want the
<BR />
tag to be actually part of the XML document, then you should make it part of the document. That is to say...您需要将其包装在 CDATA 中以保存它
you need to wrap it in CDATA to preserve it