1

我试过在 MSDN、W3Schools 和许多其他网站上查找这个问题,但似乎没有人知道答案。这是我的问题:

我正在尝试为 XML 文档生成一个起始元素。我需要创建的特定元素是:

<ns1:getRecordsResponse xmlns:ns1="http://someurl/schemas">

根据我所做的研究,我已经能够使用以下代码正确生成该元素的后半部分:

writer.WriteAttributeString("xmlns", "ns1", null, "http://someurl/schemas");

不过,我无法正确生成第一部分。我尝试使用 writer.StartElement("ns1", "getRecordsResponse"),同一行但名称相反,我尝试在三个位置中的每一个中添加 null 作为第三个参数,但它永远不会正确。我也尝试过使用 WriteElementString 方法,但我不能正确地这样做,因为它会引发无效的操作异常:

writer.WriteElementString("ns1", "getCitationsResponse", "http://someurl/schemas", null);

如何正确编写元素?

4

1 回答 1

2

这似乎做你想做的事:

using System;
using System.Xml;

class Test
{
    public static void Main(string[] args)
    {
        using (var writer = XmlWriter.Create(Console.Out))
        {
            writer.WriteStartElement("ns1", "foo", "http://someurl/schemas");
            writer.WriteAttributeString("xmlns", "ns1", null, "http://someurl/schemas");
            writer.WriteEndElement();
        }
    }
}

输出(省略 XML 声明):

<ns1:foo xmlns:ns1="http://someurl/schemas" />

查看该重载的文档WriteStartElement应该清楚为什么会起作用,因为这些是按顺序排列的参数:

  • prefix
    类型:System.String
    元素的命名空间前缀。
  • localName
    类型:System.String
    元素的本地名称。
  • ns
    类型:System.String
    要与元素关联的命名空间 URI。
于 2012-11-13T14:10:14.373 回答