【发布时间】:2012-08-29 16:36:55
【问题描述】:
我在解析 xml 文件时遇到问题。下面是一个示例。
<G_LOG>
<LINE>9206</LINE>
<TEXT>Generating
</TEXT>
</G_LOG>
<G_LOG>
<LINE>9207</LINE>
<TEXT>Inserted Actual
</TEXT>
O.K ,所以这只是文件中数千个节点的快照。我需要搜索 TEXT "Inserted Actual",不仅要删除这个节点,还要删除前一个节点。所以它会在第 9207 行找到文本并删除 9206。 (删除上面sn-p中的所有内容)
我可以搜索我要删除的行。
XDocument xmlDoc = XDocument.Load(filename);
var q = from c in xmlDoc.Descendants("G_LOG")
where c.Element("TEXT").Value.Contains("Inserted Actual")
select (string)c.Element("LINE");
foreach (string name in q)
{
Console.WriteLine("Actuals Success on ID : " + name);
}
但我不确定如何获取前一个节点并将其删除(没有代码桶)?
【问题讨论】:
-
您是只是试图删除
LINE元素还是整个G_LOG元素? -
PreviousSibling 或 PreviousNode 怎么样?
标签: c# .net xml linq linq-to-xml