【问题标题】:adding Xelement according to specific condition c#根据特定条件添加Xelement 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

【问题讨论】:

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


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

    【讨论】:

      猜你喜欢
      • 2011-06-29
      • 2019-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 2020-05-23
      • 2014-08-28
      相关资源
      最近更新 更多