繁体   English   中英

如何更改命名空间的前缀?

[英]How to change prefix of a namespace?

如何改造这个

<d xmlns='uri' xmlns:a='uri'>
    <a:c/>
    <c a:atr=':a:b:c:d:e:f:'/>
</d>

进入这个

<d xmlns='uri' xmlns:b='uri'>
    <b:c/>
    <c b:atr=':a:b:c:d:e:f:'/>
</d>

?

甚至有可能吗? 最好使用System.Xml.XmlDocument

如果 .Net 不可能,你知道什么是可能的吗?

我对这个 API 有点生疏,但你应该能够使用XDocument来替换命名空间:

var document = XDocument.Load(@"E:\input.xml");

// Find and remove the namespace
document.Root.Attribute(XNamespace.Xmlns + "a").Remove();

// Add a new namespace with same uri and different prefix
document.Root.Add(new XAttribute(XNamespace.Xmlns + "b", "uri"));

document.Save(@"E:\output.xml");

保存时, XDocument重新生成 XML,只要您保持相同的 uri,就应该应用新的前缀。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM