2013-11-14 1 views
2

처음에는 인내심이 너무 좋아서 인내심에 감사드립니다.xslt는 특정 문자열을 가진 노드를 찾고 형제 값을 표시합니다.

나는에 XSLT 쓰기 얼마나 '동적 메타 데이터'에 대한 여러 노드가있는 점을 감안
<root> 
<dynamic-metadata> 
    <name>alternative-title</name> 
</dynamic-metadata>  
<dynamic-metadata> 
    <name>category</name> 
    <value>General</value> 
    <value>Academic</value> 
    <value>Business</value> 
</dynamic-metadata> 
<dynamic-metadata> 
    <name>primary-nav</name> 
    <value>Top bar</value> 
</dynamic-metadata> 
</root> 

, :

  1. 가 함께 특정 노드를 찾아 여기

    트리의 일부입니다 'category'의 문자열,

  2. 'value'노드에 포함 된 텍스트를 검색하고 표시하려면 name = category의 형제를 반복 하시겠습니까?
    카테고리 : 값 (문자열), 값 (문자열), 값 (문자열) 도움을 많이

    감사

이상적으로, 나는이 출력을 만들려고 해요!

답변

0

dynamic-metadata[name='category'] 템플릿은 다음과 같은 템플릿을 사용하여 원하는대로 할 수 있습니다 (사용중인 실제 XSLT에 대한 세부 정보는 제공하지 않음). (BTW, XML을 수정해야했지만 형식이 잘못되었습니다.)

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 

<xsl:output method="xml" indent="yes"/> 

<xsl:template match="dynamic-metadata[name='category']"> 
    <output>Categories:<xsl:for-each select="value"> 
      <xsl:choose> 
       <xsl:when test="position() != last()"> 
        <xsl:text> </xsl:text> 
        <xsl:value-of select="."/> 
        <xsl:text>,</xsl:text> 
       </xsl:when> 
       <xsl:otherwise> 
        <xsl:text> </xsl:text> 
        <xsl:value-of select="."/> 
       </xsl:otherwise> 
      </xsl:choose> 
     </xsl:for-each> 
    </output> 
</xsl:template> 

<xsl:template match="text()"/> 

</xsl:stylesheet> 
+0

대단히 유용합니다! 도움을 주셔서 대단히 감사합니다. – FutureMuse

+0

@FutureMuse 허용 하시겠습니까? – smj

+0

네, 제 답변으로 이끌었고 기대했던 결과를 얻었습니다. 다시 Thx – FutureMuse

관련 문제