使用 System.Xml.Linq API 设置 XML 命名空间
我在按照以下方式生成 XML 时遇到问题:
<Root xmlns:brk="http://somewhere">
<child1>
<brk:node1>123456</brk:node1>
<brk:node2>500000000</brk:node2>
</child1>
</Root>
此代码可以帮助我完成大部分工作,但我无法在节点前面获取“brk”命名空间;
var rootNode = new XElement("Root");
rootNode.Add(new XAttribute(XNamespace.Xmlns + "brk", "http://somewhere"));
var childNode = new XElement("child1");
childNode.Add(new XElement("node1",123456));
rootNode.Add(childNode);
我已经尝试过这个:
XNamespace brk = "http://somewhere";
childNode.Add(new XElement(brk+"node1",123456));
和这个
XNamespace brk = "http://somewhere";
childNode.Add(new XElement("brk:node1",123456));
,但这都会导致异常。
I'm having trouble generating XML along the lines of this:
<Root xmlns:brk="http://somewhere">
<child1>
<brk:node1>123456</brk:node1>
<brk:node2>500000000</brk:node2>
</child1>
</Root>
This code get me most of the way, but I can't get the 'brk' namespace in front of the nodes;
var rootNode = new XElement("Root");
rootNode.Add(new XAttribute(XNamespace.Xmlns + "brk", "http://somewhere"));
var childNode = new XElement("child1");
childNode.Add(new XElement("node1",123456));
rootNode.Add(childNode);
I've tried this:
XNamespace brk = "http://somewhere";
childNode.Add(new XElement(brk+"node1",123456));
and this
XNamespace brk = "http://somewhere";
childNode.Add(new XElement("brk:node1",123456));
but both cause exceptions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您已经快完成了,但是您在第一个代码示例中犯了一个简单的错误。 我相信这就是您所需要的:
这里的主要区别是我将
node1
添加到childNode
,如下所示:此代码,给定一个
XmlWriter
和XDocument
为我提供输出:请参阅 MSDN 了解使用 < 的详细信息代码>XNamespace。
You are almost there, but you made one simple error in your first code example. I believe this is what you require:
The main difference here is where I add
node1
tochildNode
as follows:This code, given an
XmlWriter
andXDocument
gives me the output:See MSDN for details of using
XNamespace
.我认为问题在于根元素也需要具有名称空间:
需要是:
I believe the problem is that the root element needs to have the namespace as well:
needs to be:
这是独奏并且工作正常。
This is solotuion and working fine.