Читать документ XML и удалять узлы - PullRequest
1 голос
/ 20 февраля 2020

У меня есть файл XML, аналогичный приведенному ниже. Я прочитаю XML и найду узел EmpId. На основании других данных определю, нужно ли мне сохранить этот узел или удалить узел. В настоящее время есть процесс, который читает его и создает список идентификаторов записей, которые мне нужно будет удалить. Ниже XML я хочу сохранить EmpId = Emp1 и удалить EmpId = Emp2. Удаление - это узел.

Я считаю, что лучше всего сначала прочитать XML, чтобы определить, какие узлы сохранить, а затем go через XML снова и удалить необходимые узлы.

Каков наилучший подход для удаления этих узлов?
Я открыт для создания нового XML документа и создания узла, который необходимо сохранить. На основании данных, которые я читаю, будет 50/50, если я удалю больше узлов или оставлю больше узлов.

...
<HeaderNode>
  <Details>
    <SubmissionId>1</SubmissionId>
    <EmpDetail>
      <RecordId>1</RecordId>
      <EmpDempgraphic>
        <EmpId>Emp1</EmpId>
      </EmpDempgraphic>
    </EmpDetail>
    <EmpDetail>
      <RecordId>2</RecordId>
      <EmpDempgraphic>
        <EmpId>Emp2</EmpId>
      </EmpDempgraphic>
    </EmpDetail>
  </Details>
</HeaderNode>
...

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Использование Xml Linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace XML
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            XElement EmpDetail = doc.Descendants("EmpDetail").Where(x => (int)x.Element("RecordId") == 2).FirstOrDefault();

            EmpDetail.Remove();

        }
    }
}
0 голосов
/ 20 февраля 2020

Если документ не слишком большой, просто загрузите его в XDocument , Удалите ненужные элементы и Сохраните документ обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...