我正在尝试使用C#中的System.Xml.Xmlwriter创建具有多个名称空间的XML文档,并在编译时收到以下错误:
在同一个开始元素标记内,前缀''无法从''重新定义为'http://www.acme.com/BOF'.
我的全部代码如下:
XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true };
XmlWriter writer = XmlWriter.Create("C:\\ACME\\xml.xml", settings);
writer.WriteStartDocument();
writer.WriteStartElement("BOF");
writer.WriteAttributeString("xmlns", null, null, "http://www.acme.com/BOF"); //This is where I get my error
writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
writer.WriteAttributeString("fileName", null, null, "test.xml");
writer.WriteAttributeString("date", null, null, "2011-10-25");
writer.WriteAttributeString("origin", null, null, "MYORIGIN");
writer.WriteAttributeString("ref", null, null, "XX_88888");
writer.WriteEndElement();
writer.WriteStartElement("CustomerNo");
writer.WriteString("12345");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢
约翰
writer.WriteStartElement("BOF"); // write element name BOF, no prefix, namespace ""
writer.WriteAttributeString("xmlns", null, null, "http://www.acme.com/BOF"); //Set namespace for no prefix to "http://www.acme.com/BOF".
Run Code Online (Sandbox Code Playgroud)
第二行是没有意义的,因为你将默认(无前缀)命名空间分配给不同于它的东西,在它的同一个地方.
用这两行代替 writer.WriteStartElement("BOF", "http://www.acme.com/BOF")
| 归档时间: |
|
| 查看次数: |
5222 次 |
| 最近记录: |