에서 중복 자식 노드를 찾기 나는 다음과 같은 XML 문서를 가지고XML 문서
<xml>
<schedule orderno = "1">
<item orderno = "1" />
<item orderno = "2" />
<item orderno = "3" />
<item orderno = "2" />
</schedule>
<scool orderno = "2">
<item orderno = "5" />
<item orderno = "6" />
<item orderno = "1" />
<item orderno = "4" />
</scool>
</xml>
내가 xml 파일에 일치하지 않는 데이터가 있고 중복을 얻기 위해 XPath 식을해야합니다.
각 노드에있는 @ordnerno
item
의 고유 한 값이 있어야한다는 규칙이 있습니다. 내가 2
3
2
schedule
에 2
값이 중복되어 있고 일치하지 않는 경우.
나는
XDocument.Parse(structure)
.Descendants("item")
.Attributes("orderno")
.GroupBy(g => g.Value)
.Where(g => g.Count() > 1)
내 솔루션이 최적 인 XML의 LINQ 표현 라이브러리를 사용하여 그 그룹의 모든 노드, schedule
및 scool
때문이다.
출력은 1
및 2
이지만이 경우 1
은 필요하지 않습니다.
문제를 어떻게 해결할 수 있습니까? 너무 항목의 부모에 의해
왜 당신은 XPath를 더 나은 것 같아 :
는업데이트은 중첩 수준에 중복
@orderno
와 노드를 선택합니다 ? –? 나는 당신의 대답을 이해하지 못한다. linq 표현은 xpath와 같다. linq 함께 내 xpath 식을 구축하고 있지만식이 완료되지 않았습니다. – mimu1011
아. 당신이 가진 것은 XPath가 아니며, [XPath] (https://en.wikipedia.org/wiki/XPath)는 XML 문서의 일부를 다루기위한 특정 언어입니다. LINQ to XML을 사용하고 있으므로 실제로 원하지 않는다면 XPath에 대한 참조를 제거하는 것이 좋습니다. –