2010-04-29 4 views
3

문서에 대해 여러 XPath 표현식을 평가해야합니다. 문서가 크기 때문에 스트리밍 파서를 사용하고 있습니다. XPath 표현식은 단순히 노드의 값을 반환합니다. XPath 표현식을 문서 순서대로 정렬해야합니다. 표현식을 평가하면 마지막 표현식이있는 위치에서 다음 표현식의 평가가 시작됩니다. 나는이 문서를위한 스키마를 가지고 있지만 주문을하기 위해 그것을 어떻게 사용하는지 확신 할 수 없다.XPath 표현식을 문서 순서로 정렬

저는 .NET 4에서 C#을 사용하고 있습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면, 나는 그것을 감사 할 것입니다!

다음 사항을 따르십시오. Dimitre가 지적했듯이 전체 XPath에서는 불가능합니다. 표현식을 XML Signature Streaming Profile으로 제한하여, 각 노드가 요소 이름과 서수 위치 (스키마 내에 나타난 순서)를 포함하는 트리를 구성 할 수있었습니다. 트리를 만들었 으면 XPath로 가로 지르면서 목록의 위치를 ​​수집했습니다. 일단 순위 목록을 얻으면 목록을 비교하고 상대 위치를 결정하는 것이 쉬웠습니다.

답변

1

이는 XPath 표현에 몇 가지 제한을 두지 않고는 달성 할 수 없습니다. 예를를 들어

, 축 descendant::, descendant-or-self::, ancestor::, ancestor-or-self::, preceding::, following::을 심지어 축 preceding-sibling::following-sibling::가 포함 된 XPath 식은 - 완전히 XML 문서를 읽고 필요할 수 있습니다.

경우 XPath 식는 (그들은 또한 parent:: 또는 .. 포함되지 않아야합니다) 위치 단계의 숫자로 그들을 주선 수, 이러한 축를 포함하지 않는, 당신은 일시적으로 정지는 식을 평가 할 수 있습니다 위치 경로의 수가 현재 깊이보다 작습니다.

관련 문제