【问题标题】:How to convert list of XElement to XDocument?如何将 XElement 列表转换为 XDocument?
【发布时间】:2018-08-23 17:19:34
【问题描述】:

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

这样做:

我将 string(workingData) 转换为 Xdocument,然后添加了一个条件来选择工作正常的 xelements (abc)。

现在我需要帮助用新的 xelement(abc) 替换现有的 xelements 回到 doc 中删除节点

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";
            }

【问题讨论】:

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


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 1970-01-01
      • 2014-01-17
      相关资源
      最近更新 更多