C# XML流量控制
我有一个“xml源”正在向我发送xml xml可以有两种方式。与“秩序”相关的人。第二个与“员工”相关 通常,在分解xml时,我使用一些Linq到xml来解析已知的xml模式 但是现在,随着两种不同的xml模式向我走来,我正试图找到“交通警察”xml的最有效方法 我试过的是:C# XML流量控制,c#,xml,c#-4.0,linq-to-xml,C#,Xml,C# 4.0,Linq To Xml,我有一个“xml源”正在向我发送xml xml可以有两种方式。与“秩序”相关的人。第二个与“员工”相关 通常,在分解xml时,我使用一些Linq到xml来解析已知的xml模式 但是现在,随着两种不同的xml模式向我走来,我正试图找到“交通警察”xml的最有效方法 我试过的是: 解析“version1”……然后检查强制(订单)数据(如有效的订单ID)。如果该数据不存在,则: 解析“version2”……然后检查必需的员工数据,如employeeSSN 如果两个都失败了,那么我会记录我没有得到任何一
<root>
<orders>
<order orderId="ABC123">
<orderDetails>
<orderDetail itemName="Bike" quantity="1"/>
<orderDetail itemName="TeddyBear" quantity="2"/>
<orderDetail itemName="Doll" quantity="3"/>
</orderDetails>
</order>
<!-- -->
<order orderId="DEF234">
<orderDetails>
<orderDetail itemName="Truck" quantity="4"/>
<orderDetail itemName="Marbles" quantity="5"/>
<orderDetail itemName="BoardGame" quantity="6"/>
</orderDetails>
</order>
</orders>
</root>
<root>
<employees>
<employee employeeSSN="222222222" firstName="John">
<employeeEmails>
<employeeEmail emailValue="john@home.com" />
<employeeEmail emailValue="john@work.com" />
</employeeEmails>
</employee>
<!-- -->
<employee employeeSSN="3333333" firstName="Mary">
<employeeEmails>
<employeeEmail emailValue="mary@home.com" />
<employeeEmail emailValue="mary@work.com" />
<employeeEmail emailValue="mary@spamcatcher.com" />
</employeeEmails>
</employee>
</employees>
</root>
如果模式从未改变,就继续做你正在做的事情。搜索“employees”元素或“orders”元素,然后从中选择OK。我想没有别的了。但是我想我应该问问那里的专家。我认为用XSD检查它们是一种“正确”的方法,可以让你将这个过程扩展到多种格式。但是,如果有一种简单、可靠的方法来区分它们,并且扩展性不是一个问题,那么我同意简单的选择可能是一种方法。