我已经尝试过在MSDN,W3Schools和其他一些网站上查找,似乎没有人能够得到答案。这是我的问题:
我正在尝试为XML文档生成一个start元素。我需要创建的具体元素是:
<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);
如何正确编写元素?
答案 0 :(得分: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" />
查看documentation for that overload of WriteStartElement
应该清楚为什么会起作用,因为它们是按顺序排列的参数:
- 前缀
类型:System.String
元素的名称空间前缀。- 的localName
类型:System.String
元素的本地名称。- NS
类型:System.String
与元素关联的名称空间URI。