내 시나리오에서 작동하는 XPath 표현식을 얻지 못하는 것 같습니다. "EndDevice"유형을 가진 모든 "Device"노드를 찾고 싶습니다. 모든 "장치"노드를 셀 수 있으며 "EndDevice"특성을 가진 모든 "장치"노드를 찾을 수도 있습니다. 그러나, 나는 그들을 결합하는 것처럼 보일 수 없다!특정 속성을 가진 노드의 수를 계산하기 위해 XPath를 사용하는 방법
중요한 경우 XPathBuilder를 사용하고 있습니다.
내 시나리오에서 작동하는 XPath 표현식을 얻지 못하는 것 같습니다. "EndDevice"유형을 가진 모든 "Device"노드를 찾고 싶습니다. 모든 "장치"노드를 셀 수 있으며 "EndDevice"특성을 가진 모든 "장치"노드를 찾을 수도 있습니다. 그러나, 나는 그들을 결합하는 것처럼 보일 수 없다!특정 속성을 가진 노드의 수를 계산하기 위해 XPath를 사용하는 방법
중요한 경우 XPathBuilder를 사용하고 있습니다.
XPathBuilder 2.0.0.4를 사용하여 재현했습니다. 그러나 XPath식이 작동하고 온라인 평가 기에서 올바르게 평가되었으므로 (http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm) 시도했습니다.
편집 : 또한 Altova XMLSPY의 최신 버전으로 시도
입력 :
<?xml version="1.0"?>
<asdf xmlns:xsi="n/a">
<Device xsi:type='EndDevice'/>
<Device xsi:type='EndDevice'/>
<Device xsi:type='EndDevice'/>
<Device xsi:type='EndDevice'/>
</asdf>
XSLT :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsi="n/a">
<xsl:output indent="yes"/>
<xsl:template match="*">
<output>
<xsl:value-of select="count(//Device[@xsi:type = 'EndDevice'])"/>
</output>
</xsl:template>
</xsl:stylesheet>
출력 :
<?xml version="1.0" encoding="UTF-8"?>
<output xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsi="n/a">4</output>
가 나는 그것이 XPathBuilder 그게 전부라고 생각 몇 가지 일을 잘못된 것.
동의. XPathBuilder에서는 문제가 될 가능성이 큽니다. 필자는 Xalan, Saxon 6.5.5, Saxon HE 9.2.0.3을 사용하여 oXygen에서 XML/XSLT를 테스트했으며 원하는 출력을 얻었다. –
test.xml의에 저장된 상기 XML을 사용 http://kernowforsaxon.sourceforge.net/
declare namespace xsi="n/a";
count(doc('test.xml')//Device[@xsi:type = "EndDevice"])
올바른 출력을 생성 도구를 사용.
두 번째 것이 "효과가 있었다"는 것이 무엇을 의미합니까? 일부 노드와 일치합니까? XPath가 올바르게 보이므로 표시되지 않는 코드 섹션이나 사용중인 도구에서 작동하지 않는 무언가가 있습니다. –