我需要摆脱我的父节点,而不是我的子节点。
以下是它的表现:
<?xml version="1.0" encoding="utf-8"?>
<ns0:MisMessage>
<mislife>
<party/>
<datetime>2018-06-04T09:35:33</datetime>
<insurance">
<number>123</number>
<amount>3</amount>
<indicator></indicator>
<text>asd</text>
</insurance>
</mislife>
<ns0:Message/>
</ns0:MisMessage>
以下是我希望它能够照顾我完成的事情。
<mislife>
<party/>
<datetime>2018-06-04T09:35:33</datetime>
<insurance">
<number>123</number>
<amount>3</amount>
<indicator></indicator>
<text>asd</text>
</insurance>
</mislife>
有没有简单的方法可以做到这一点?我尝试过并尝试过。我一直在寻找互联网,我无法找到如何做到这一点。我要删除的东西将始终命名为ns0:在beggning中。我可以通过删除子串来实现吗?谢谢!
我解决了它,如下所示,我将XMLDocument转换为XDocument,然后使用后代。就像@bommelding在他的例子中所表现的那样。谢谢大家!
var xDocument = ToXDocument(xmlDocument);
if (xDocument != null)
{
var mislife = xDocument.Descendants("mislife").FirstOrDefault();
if (mislife != null)
{
return mislife;
}
}
public static XDocument ToXDocument(XmlDocument xmlDocument)
{
using (var nodeReader = new XmlNodeReader(xmlDocument))
{
nodeReader.MoveToContent();
return XDocument.Load(nodeReader);
}
}
答案 0 :(得分:0)
XDocument doc = XDocument.Load(fileName);
XElement data = doc
.Descendants("mislife") // find your target
.Single(); // be brave, there should be exactly 1
data.Save(otherFileName); // saves with document <? ... ?>
答案 1 :(得分:0)
使用Linq的简单方法(记得使用System.Xml.Linq添加;):
MnemonicHandler
doc将是没有根元素的xml
XDocument可以从带有
的文件加载string testxml = @"
<?xml version=""1.0"" encoding=""UTF-8""?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
XDocument doc = XDocument.Parse(testxml).Descendants().First().Document;
或像我一样阅读XML
XDocument.Load("path");
还有其他选择。
结果是:
Xml.Parse("<xml....>");