Сравнение XML для проверки одинаковых или разных оконных приложений - PullRequest
2 голосов
/ 31 августа 2009

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

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

Здесь тэг <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>

Ответы [ 3 ]

2 голосов
/ 31 августа 2009

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

1 голос
/ 31 августа 2009

Попробуйте,

 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 голосов
/ 31 августа 2009

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

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