尝试使用内存流添加带有XmlTextWriter的命名空间

时间:2011-05-09 17:28:35

标签: c# xml xml-namespaces

注意我仅限于.NET 2.0

我需要使用XmlTextWriter添加命名空间。我没有阅读Xml文档或将其保存。起初我以为我可以使用XmlNameSpaceManager来添加命名空间,但这似乎是我在xml文档中读取或使用XmlDocument对象的情况。

也许我过度复杂了,因为我一次只处理一个命名空间。看来我可以添加一个带有属性的根元素来手动创建命名空间,因为它位于根元素上。

我需要创建的示例:

<?xml version="1.0" encoding="utf-8"?>
<abcElement xmlns="urn:schemas-acme-com:transaction-data-1.1">

</abcElement>

执行以下操作会出现问题:

xtw.WriteStartDocument();
xtw.WriteStartElement("abcElement");
xtw.WriteAttributeString("xmlns", "urn:schemas-acme-com:transaction-data-1.1");
xtw.WriteEndElement();

或者这有问题吗?

3 个答案:

答案 0 :(得分:0)

稍后当您添加其他元素时,您可能会从XNamespace和XElement获得更多里程。

http://msdn.microsoft.com/en-us/library/bb387075.aspx

答案 1 :(得分:0)

您不应该尝试手动输出xmlns。请使用WriteStartElement的另一个替代 - http://msdn.microsoft.com/en-us/library/7cdfkth5.aspx

writer.WriteStartElement(prefix, "ISBN", "urn:samples");

答案 2 :(得分:0)

xtw.WriteStartElement("abcElement");
xtw.WriteAttributeString("xmlns", "urn:schemas-acme-com:transaction-data-1.1");

应该是

xtw.WriteStartElement("abcElement", "urn:schemas-acme-com:transaction-data-1.1");