Сравнение XML для проверки одинаковых или разных оконных приложений

2

У меня есть два файла XML sitemap.xml и mouse.xml, которые выглядят ниже. Вот что это:

Мне нужно сравнить sitemap.xml с mouse.xml таким образом, чтобы тег <Name></Name>. Мне нужно сравнить оба xml файла, будет ли контент входящий в тег <Name></Name> те же или нет в коде С#

Здесь тег <Name></Name > - это разные средства. sitemap.xml содержит "test" и mouse.xml содержат "exam".

<?xml version="1.0" standalone="yes"?>
    <ObjectClass>
    <Image>00000000-0000-0000-0000-000000000000</Image>
    <Description />
    <Name>test</Name>
    <DefaultApp>00000000-0000-0000-0000-000000000000</DefaultApp>
    <ID>464930eb-e518-4d0c-b80b-184c97c7dd27</ID>
    <ParentClassID>00000000-0000-0000-0000-000000000002</ParentClassID>
    <DynamicPopulation>false</DynamicPopulation>
    <TimeoutPeriod>0</TimeoutPeriod>
    <Persist>false</Persist>
    <ClassVersion>1</ClassVersion>
    <Reinitialize>false</Reinitialize>
  </ObjectClass>

это mouse.xml

 <?xml version="1.0" standalone="yes"?>
    <ObjectClass>
    <Image>00000000-0000-0000-0000-000000000000</Image>
    <Description />
    <Name>exam</Name>
    <DefaultApp>00000000-0000-0000-0000-000000000000</DefaultApp>
    <ID>464930eb-e518-4d0c-b80b-184c97c7dd27</ID>
    <ParentClassID>00000000-0000-0000-0000-000000000002</ParentClassID>
    <DynamicPopulation>false</DynamicPopulation>
    <TimeoutPeriod>0</TimeoutPeriod>
    <Persist>false</Persist>
    <ClassVersion>1</ClassVersion>
    <Reinitialize>false</Reinitialize>
  </ObjectClass>
Теги:
winforms

3 ответа

1
Лучший ответ

Попробуйте,

 XmlDocument doc1 = new XmlDocument();
    XmlDocument doc2 = new XmlDocument();
    doc1.Load(@"c:\myproject\WindowsApplication1\sitemap.xml");
    doc2.Load(@"c:\myproject\WindowsApplication1\mouse.xml");

    XmlNodeList a = doc1.GetElementsByTagName("Name");
    XmlNodeList b = doc2.GetElementsByTagName("Name");
    if (a.Count == 1 && b.Count == 1)
    {
        if (a[0].InnerText == b[0].InnerText)
            Console.WriteLine("Equal");
        else
            Console.WriteLine("Not Equal");
    }
  • 0
    я получаю это исключение Не могу найти файл 'F: \ WindowsApplication1 \ WindowsApplication1 \ bin \ Debug \ sitemap.xml'.
  • 0
    Эй, приятель, добавь физический путь к файлам xml. например, c: \ xyz \ sitemap.xml.
Показать ещё 5 комментариев
2

Попробуйте Microsoft XML diff API.

0

XMLUnit является отличным для сравнения xml. В основном, на Java, но там есть и .Net-порт (я использовал только Java): http://xmlunit.sourceforge.net/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню