XML 문서의 구조를 알 때마다 그것의 사용은 큰 비 효율성 (전체 문서 트리의 탐색)을 초래할 수 있으므로, 그것의 //
XPath는 의사 운영자을 사용하지 않는 것이 좋습니다.
그러므로, 나는 제공된 XML 문서에 대해이 XPath 식을 recomment :
는
/*/b[c]
이 XML 문서의 최상위 요소의 자식 어떤 b
요소를 선택하고 그 c
라는 이름의 아이 요소가 . UPDATE
가 : 영업 몇 분 전에 secons의 질문을 :
두 번째 질문 나는 두 조건을 결합 할 수 있습니다 : 내가 요소를 취득하는이 이름 = "B2"와 요소 C를 가지고 있지만이 구문은 작동하지 않을 것 같다 //b[@name='b2' and c]
제공되는 XPath 식 정확하게 일을 선택 않습니다 희망 요소. 여기
는 XSLT 인 - 대조 :
<a>
<b name = "b1"></b>
<b name = "b2"><c/></b>
<b name = "b3"></b>
</a>
는 XPath 식을 평가하고 정확하게된다 :이 변환은 제공된 XML 문서에 적용
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:copy-of select="//b[@name='b2' and c]"/>
</xsl:template>
</xsl:stylesheet>
선택한 요소가 출력으로 복사됩니다.
<b name="b2">
<c/>
</b>
정확히 "작동하지 않는 것"을 의미합니까? 새롭고 별도의 질문을하고 소스 XML 문서 전체, 사용 된 XPath 표현식 및 원하는 결과 및 실제 결과를 제공하십시오. 현재의 XML 문서에서 XPath 표현식'// b [@ name = 'b2'와 c]'는'a'의 두 번째 자식을 정확히 선택합니다. –