我需要在 XML 中找到重复元素的位置。例如,在 XML 中,如下所示:
<menu>
<juice sugar="yes" fresh="no">
<apple/>
<carrot/>
</juice>
<juice sugar="no" fresh="no">
<apple/>
<carrot/>
</juice>
<juice sugar="no" fresh="no">
<carrot/>
<apple/>
</juice>
<juice>
<carrot kind="village" />
<orange/>
<juice/>
<juice>
<carrot kind="village" />
<orange/>
<carrot kind="village" />
</juice>
</menu>
如果我的 XML 包含与共同父元素相同的元素,我需要抛出一个异常。然而,属性也很重要,应该是平等的。
后代的顺序应该不重要。这意味着,在我的示例中,应该抛出异常
<juice sugar="no" fresh="no">
<apple/>
<carrot/>
</juice>
<juice sugar="no" fresh="no">
<carrot/>
<apple/>
</juice>
因为“果汁”的所有属性都相等,并且第二个“果汁”的子代是第一个的置换子代。
另一个应该发生异常的地方是:
<juice>
<carrot kind="village" />
<orange/>
<carrot kind="village" />
</juice>
因为“果汁”两次包含相同的“胡萝卜”。
对于这个问题的任何提示,我将不胜感激。我应该使用 XSLT 吗?或者在 C# 中反序列化我的 XML 可能更好?