如何将 XElement 列表转换为 XDocument?
How to convert list of XElement to XDocument?
我的工作是根据某些条件从XML中删除一些节点,然后将更改后的XML解析为字符串。
为此:
我将 string(workingData) 转换为 Xdocument,然后向 select xelements (abc) 添加了一个条件,效果很好。
现在我需要帮助将现有的 xelements 替换为新的 xelement(abc) 返回文档中的删除节点。
PS:忽略硬编码的return "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";
}
您可以删除不需要的元素吗?我认为这可行:
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)
我的工作是根据某些条件从XML中删除一些节点,然后将更改后的XML解析为字符串。
为此:
我将 string(workingData) 转换为 Xdocument,然后向 select xelements (abc) 添加了一个条件,效果很好。
现在我需要帮助将现有的 xelements 替换为新的 xelement(abc) 返回文档中的删除节点。
PS:忽略硬编码的return "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";
}
您可以删除不需要的元素吗?我认为这可行:
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)