根据特定条件添加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>

我想在&lt;AssociatedDocumentIds&gt; 里面插入&lt;string&gt;487fgjke4f-5g434-42d0-ag95-e3083f1fe342&lt;/string&gt; &lt;Label&gt;= 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

如何在 XML 文档中的特定位置添加 XElement

如何使用 XElement 在标签之间添加值?

将根据特定条件调整(添加或删除)行的 Google 表格脚本

根据特定条件添加http或https

如何创建具有特定命名空间的 XElement?