我正在创建一个XML文档,我想将URL存储在一个节点中,如下所示:
<ns:url>http://example.com</ns:ulr>
我的问题是,我是否需要编码/转义URL?
如果我这样做,.Net XmlDocument对象会为我处理这个吗?
答案 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都是为您做的;所以对于所有实际情况,你不需要手动完成。我刚才说应该完成。