我该如何处理XML中的URL?

时间:2009-02-02 20:55:17

标签: .net xml url

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

<ns:url>http://example.com</ns:ulr>

我的问题是,我是否需要编码/转义URL?

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

3 个答案:

答案 0 :(得分:2)

通常,大多数DOM实现(包括XmlDocument)都应该默认处理任何必要的文本内容转义。

答案 1 :(得分:1)

DOM / XmlWriter /您正在使用的任何内容都应该为您处理。一个小问题:您可能会发现使用XDocument更容易(如果您有3.5) - 名称空间使用更简单(IMO):

XNamespace ns = "http://consoso/foobar";
XDocument doc = new XDocument(
     new XElement("Foo",
         new XAttribute(XNamespace.Xmlns + "ns", ns), // alias
         new XElement("Bar", "abc"),
         new XElement(ns + "url", "http://foo/bar")
     )
 );
 string s = doc.ToString();

创造了:

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

答案 2 :(得分:0)

我怀疑一般都不需要逃避它。但是,您可能需要一些应用程序级别的要求。

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

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