力的XDocument不使用命名空间前缀如果空间也被定义为默认 [英] Force XDocument to not use namespace prefix if namespace is also defined as default
本文介绍了力的XDocument不使用命名空间前缀如果空间也被定义为默认的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有与无命名空间前缀指定默认命名空间的XML文件。当我生成XML输出我得到前缀的XML元素。有没有办法摆脱前缀,因为我使用的是默认命名空间?
I have an xml file with default namespace specified with and without namespace prefix. When I generate xml output I'm getting all xml elements prefixed. Is there way to get rid of the prefixes since I'm using the default namespace?
class Program
{
static void Main(string[] args)
{
var xml =
"<root xmlns='default-namespace' xmlns:key='default-namespace'>" +
" <node1></node1>" +
" <node2></node2>" +
"</root>";
var document = XDocument.Parse(xml);
var output = document.ToString();
}
}
输出:
<key:root xmlns="default-namespace" xmlns:key="default-namespace">
<key:node1></key:node1>
<key:node2></key:node2>
</key:root>
什么我期望:
What I'd expect:
<root xmlns="default-namespace" xmlns:key="default-namespace">
<node1></node1>
<node2></node2>
</root>
可惜我不能去除重复的命名空间声明。我使用的是实际的XML文件是由其他方提供,我需要做的少的修改成为可能。
Unfortunately I can't remove the duplicated namespace declaration. The actual xml file I'm using is provided by another party and I need to do as less modifications as possible.
推荐答案
您可以使用与string.replace方法来获得所需的XML格式...
You Can Use String.Replace Method to Get The Required XML Format ...
var xml ="<root xmlns='default-namespace' xmlns:key='default-namespace'>" +
" <node1></node1>" +
" <node2></node2>" +
"</root>";
var document = XDocument.Parse(xml);
var output = document.ToString().Replace("key:", string.Empty);
这篇关于力的XDocument不使用命名空间前缀如果空间也被定义为默认的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文