c# - 将字符串解析为 Xelement 时如何添加命名空间?
问题描述
我正在寻找为Xelement
下面设置一个命名空间。如何实现?
string Namespace = "http://mynamespace";
string defaultXml = "<ReferResult><Text> Testing Referred</Text></ReferResult>"
Xelement myXml = XElement.Parse(defaultXml);
// How to add the name space to myXml?
解决方案
XNamespace Namespace = "http://mynamespace";
string defaultXml = "<ReferResult><Text> Testing Referred</Text></ReferResult>";
XElement myXml = XElement.Parse(defaultXml);
myXml.Name = Namespace + myXml.Name.LocalName;
//If you want the children to have the same namespace, use the following.
//If you want only the parent to have the namespace, omit the code bellow
foreach(var element in myXml.Descendants()){
element.Name = Namespace + element.Name.LocalName;
}
//Output:
//<ReferResult xmlns="http://mynamespace">
// <Text> Testing Referred</Text>
//</ReferResult>
编辑:根据评论中OP的要求,要删除命名空间,只需使用相同的代码,但省略命名空间部分:
myXml.Name = myXml.Name.LocalName;
foreach(var element in myXml.Descendants()){
element.Name = element.Name.LocalName;
}
推荐阅读
- angular - 拖放 Angular 7
- excel - 数组公式查找一年内具有指定服务类型的客户
- linux - 试图获得确切的 grep 属性以给出包含整个句子的结果
- azure - 无法使用我的 hotmail 帐户创建新的 Azure Devops MSA 帐户。我有一个链接到我的组织的 AD Devops 帐户,该帐户运行良好
- linux - Puppet Master 代理配置
- java - 实现双向选择排序的问题
- javascript - @HostListener 的问题
- c - 关于布尔值上的 C 指针的问题,
- sql - 当 distinct 为 1 和 n 时加入操作的区别?
- java - Java int 到分数