.net 我应该如何处理XML中的URL?

.net 我应该如何处理XML中的URL?,.net,xml,url,.net,Xml,Url,我正在创建一个XML文档,并希望在节点中存储URL,如下所示: <ns:url>http://example.com</ns:ulr> http://example.com 我的问题是,我是否需要对URL进行编码/转义 如果我这样做了,.Net XmlDocument对象会为我处理这个问题吗?我怀疑是否有必要从总体上转义它。但是,您可能需要一些应用程序级别的要求才能这样做 您应该绝对地将URL编码为XML文本(例如,它不应该包含) 澄清:这并不意味着您应该将编码文本传

我正在创建一个XML文档,并希望在节点中存储URL,如下所示:

<ns:url>http://example.com</ns:ulr>
http://example.com
我的问题是,我是否需要对URL进行编码/转义


如果我这样做了,.Net XmlDocument对象会为我处理这个问题吗?

我怀疑是否有必要从总体上转义它。但是,您可能需要一些应用程序级别的要求才能这样做

您应该绝对地将URL编码为XML文本(例如,它不应该包含


澄清:这并不意味着您应该将编码文本传递给DOM实现。我知道的所有XML API都是为您这样做的;因此,对于所有实际情况,都不需要手动操作。我刚才说应该这样做。

一般来说,大多数DOM实现(包括XmlDocument)默认情况下应该处理任何必要的文本内容转义。

DOM/XmlWriter/无论您使用什么,都应该为您处理。一个小问题:您可能会发现使用XDocument更容易(如果您有3.5版的话)-名称空间的使用更简单(IMO):

这就产生了:

<Foo xmlns:ns="http://consoso/foobar">
  <Bar>abc</Bar>
  <ns:url>http://foo/bar</ns:url>
</Foo>

abc
http://foo/bar

如果这样做,只会增加复杂性。任何将DOM转换为文本文件的人都有责任处理这种转义。顺便说一下,在文本内容中不需要转义“>”,因为它不引入标记。我认为这是有效XML文档的一个要求。我并没有说你应该手工做。不管用什么方法,您都应该这样做,这就是为什么每个DOM XML实现都会为您这样做的原因。应该通过直接字符串操作生成XML的人只有编写DOM XML实现的人。@Robert:我同意,但已经“完成”了。对我决不会在应用程序中写这样的东西。我会使用XElement。但不管我用什么,最终都会这样做,所以必须这样做。我只说了这些,没别的了。我从来没有说过,你应该手动编码它并将它交给你的DOM对象。通过DOM或某个XMLWriter创建文档,您会没事的。谢谢,XDocument非常简单。直到现在我才知道这件事。
<Foo xmlns:ns="http://consoso/foobar">
  <Bar>abc</Bar>
  <ns:url>http://foo/bar</ns:url>
</Foo>