如何将XElement列表转换为XDocument?

时间:2018-08-23 17:19:35

标签: c# xml linq-to-xml xelement xmlnode

我的工作是根据某些条件从XML中删除一些节点,然后将更改后的XML解析为字符串。

要这样做:

我将字符串(workingData)转换为Xdocument,然后添加了一个条件以选择效果良好的xelements(abc)。

现在,我需要帮助,以已删除的节点将新的xelement(abc)替换为文档中的新xelement(abc)

PS:忽略硬编码的返回值“ xx”,以后将其更改为转换后的xml。

 private string convertXML(string workingData, IEnumerable<string> fulfillerClaims)
            {
                XDocument doc = XDocument.Parse(workingData);
                IEnumerable<XElement> abc;
                foreach (XElement item in doc.Elements())
                {
                    abc = item.Elements().Where(x => x.Name.LocalName == "Entry").Select(x => x).Where(x => x.Attribute("Fulfiller") == null || fulfillerClaims.Contains(x.Attribute("Fulfiller").Value));
                }     


                return "xx";
            }

1 个答案:

答案 0 :(得分:1)

您可以删除不需要的元素吗?我认为这会起作用:

foreach (XElement item in doc.Elements()) {
    item.Elements().Where(x => x.Name.LocalName != "Entry" && (x.Attribute("Fulfiller") != null && !fulfillerClaims.Contains(x.Attribute("Fulfiller").Value))).Remove();
}

可能想检查条件逻辑。.我没有任何测试数据可用于...

我确实删除了看起来像是在浪费周期的部分内容:

.Select(x => x)