manoj1412012 Ответов: 1

Как найти дубликаты узлов в XML с помощью C#


У меня есть неструктурированный XML, как показано ниже

<Root name="FIRST" serviceidentifier="">
  <SERVER response="SERVICE NOT FOUND" type="SERVER" identifier="NONE" misc="NOT FOUND"/>
</Root>
<Root name="SECOND" serviceidentifier="">
  <SERVER response="SERVICE NOT FOUND" type="SERVER" identifier="NONE" misc="NOT FOUND"/>
</Root>	
<Root name="FIRST" serviceidentifier="">
  <SERVER response="SERVICE NOT FOUND" type="SERVER" identifier="NONE" misc="NOT FOUND"/>
</Root>


Я должен найти номер строки XML, который имеет дубликаты узлов с атрибутом "FIRST", например " Root name=FIRST"

Что я уже пробовал:

Я новичок в XML поэтому пожалуйста дайте мне полный код

Спасибо за помощь .....

Thanks7872

"То, что я пробовал" - это разъяснение того, что вы пробовали. "Я новичок в XML, поэтому, пожалуйста, дайте мне полный код" - это недопустимый текст для этого раздела. По крайней мере, попробуйте что-нибудь и вернитесь с проблемами, с которыми вы столкнулись. Никто здесь не будет рад "дать вам полный код".

1 Ответов

Рейтинг:
2

Kornfeld Eliyahu Peter

Ваша первая и самая серьезная проблема заключается в том, что это не XML (недопустимый), поэтому вы не можете загрузить его в XmlDocument[^] объект...
Поэтому сначала оберните его в виртуальный корень, сделайте его допустимым XML, а затем используйте XMLDocument и XPath для поиска элементов с одинаковыми атрибутами...
Примеры XPath[^]
[^]
Выбор Узлов С Помощью Навигации XPath / Microsoft Docs[^]