我有两个XML文件sitemap.xml和mouse.xml,如下所示。这就是那个
我需要以标签的方式比较sitemap.xml和mouse.xml
<Name></Name>.
我需要比较两个xml文件是否有内容
来自<Name></Name>
标签的内容在c#code
此处<Name></Name
&gt;标签不同意味着sitemap.xml包含“test
“和mouse.xml包含”考试“。
<?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>
答案 0 :(得分:2)
尝试使用Microsoft XML diff API。
答案 1 :(得分: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");
}
答案 2 :(得分:0)
XMLUnit非常适合xml比较。主要基于Java,但也有一个.Net端口(我只使用了Java端口):http://xmlunit.sourceforge.net/