gpt4 book ai didi

c# - 使用 LINQ 在 XML 中的特定位置插入特定的 XElement

转载 作者:行者123 更新时间:2023-11-30 22:32:41 25 4
gpt4 key购买 nike

string myTagData = "一些有效的xml数据";

我想编写 LINQ to XML 查询,它可以将 XML1 和 XML2 转换为结果 XML1 和结果 XML2 ,如果存在 abc 标签,则插入 myTagData 的内容作为 abc 标签的最后一个子标签,否则如果abc 标签不存在添加 myTagData 内容作为根元素的最后一个子元素。

XML1

<data>
<abc>
<tag1></tag1>
<tag2></tag2>
</abc>
</data>

XML2

<data>

<data>
<cde>
</cde>
<xyz>
</xyz>
</data>

结果 xml 1

<data>
<abc>
<tag1></tag1>
<tag2></tag2>
<myTag></myTag>
</abc>
<bcd>
</bcd>
</data>

结果 XML2

<data>
<cde>
</cde>
<xyz>
</xyz>
<myTag></myTag>
</data>

最佳答案

这很简单。假设你有一个变量 data代表<data>元素,和 myTagData是您要添加的元素:

XContainer whereToAdd = data.Element("abc") ?? (XContainer) data;
whereToAdd.Add(myTagData);

这是使用空合并运算符作为在两个选项之间切换的简单方法...因为 Element如果请求的元素不存在,方法返回 null。如果您对空合并运算符不满意,您可能会发现它更容易理解:

XElement abc = data.Element("abc");
if (abc != null)
{
abc.Add(myTagData);
}
else
{
data.Add(myTagData);
}

不过我个人引用的是简明版本:)

关于c# - 使用 LINQ 在 XML 中的特定位置插入特定的 XElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8642980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com