XSL 변수에 XPath 표현식을 표현 (또는 다른 기술을 사용)하고 그 저장된 표현식을 여러 개의 XSLT 선택 매개 변수로 사용하고 싶습니다. (XPath 표현식은 복잡하고 한 곳에서 정의/유지하려고합니다.)XPath의 변수가 코드 중복을 피하기 위해 선택했습니다.
XSL 1.0을 사용하는 msxsl을 사용하고 있습니다.
다음 예제 코드에서는 "@ attr1! = 'aaa'및 @ attr1! = 'bbb'"중복을 피하고자합니다. 여기
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<results>
<xsl:for-each select="//node[@attr1 != 'aaa' and @attr1 != 'bbb']">
<result-node parent="AAA">
<xsl:value-of select="@value"/>
</result-node>
</xsl:for-each>
<xsl:for-each select="//node[@attr1 != 'aaa' and @attr1 != 'bbb']">
<result-node parent="BBB">
<xsl:value-of select="@value"/>
</result-node>
</xsl:for-each>
</results>
</xsl:template>
</xsl:transform>
위의 코드를 처리 할 때 출력 다음 샘플 XML이다.
XML :
<root>
<AAA>
<node attr1="aaa" value="1"/>
<node attr1="bbb" value="2"/>
<node attr1="ccc" value="3"/>
<node attr1="ddd" value="4"/>
</AAA>
<BBB>
<node attr1="aaa" value="5"/>
<node attr1="bbb" value="6"/>
<node attr1="ccc" value="7"/>
<node attr1="ddd" value="8"/>
</BBB>
</root>
출력 : 식 평가의
<results>
<result-node parent="AAA">3</result-node>
<result-node parent="AAA">4</result-node>
<result-node parent="AAA">7</result-node>
<result-node parent="AAA">8</result-node>
<result-node parent="BBB">3</result-node>
<result-node parent="BBB">4</result-node>
<result-node parent="BBB">7</result-node>
<result-node parent="BBB">8</result-node>
</results>
질문에 입력 XML뿐만 아니라 예상 한 결과를 추가하십시오. 변수에 XPath 표현식을 저장하는 것이 필요하지 않을 수도 있습니다 - 우리는 [실제로 무엇을 성취하려고하는지 알고 있어야합니다.] (http://meta.stackexchange.com/questions/66377/what-is-the- xy- 문제). –
http://xsltransform.net/6qVRKw6/2 –