根据特定条件添加Xelement c#
Posted
技术标签:
【中文标题】根据特定条件添加Xelement c#【英文标题】:adding Xelement according to specific condition c# 【发布时间】:2020-04-20 12:35:25 【问题描述】:我有这个XML代码,我想根据另一个节点的特定条件插入一个子节点。
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfTag xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Tag>
<AssociatedDocumentIds>
<string>3dfeba3d-6660-4241-b2a4-0d4c256a299f</string>
</AssociatedDocumentIds>
<IsBold>false</IsBold>
<IsFavorite>true</IsFavorite>
<Label>Test-Auto-Tag3</Label>
</Tag>
<Tag>
<AssociatedDocumentIds>
<string>282cf07e-2f5a-42d0-a555-e3085b1ba389</string>
</AssociatedDocumentIds>
<IsBold>false</IsBold>
<IsFavorite>true</IsFavorite>
<Label>AFF-0101</Label>
</Tag>
</ArrayOfTag>
我想在<AssociatedDocumentIds>
里面插入<string>487fgjke4f-5g434-42d0-ag95-e3083f1fe342</string>
<Label>= Test-Auto-Tag3
我使用
加载文档 XDocument xmlSettingTag = XDocument.Load(cheminTags);
XElement AssoAff = new XElement("AssociatedDocumentIds");
AssoAff.Add(new XElement("string", DocKey)); ------where <Label> = Test-Auto-Tag3
【问题讨论】:
【参考方案1】:我用这段代码解决了这个问题
var lbls = xmlSettingTag.Elements();
foreach (var lbl in lbls.Elements("Tag"))
var lb = lbl.Element("Label").Value;
if (lb == "Test-Auto-Tag3")
lbl.Element("AssociatedDocumentIds").Add(new XElement("string","487fgjke4f-5g434-42d0-ag95-e3083f1fe342"));
xmlSettingTag.Save(cheminTags);
【讨论】:
以上是关于根据特定条件添加Xelement c#的主要内容,如果未能解决你的问题,请参考以下文章
将 XElement 添加到特定位置的另一个 XElement