2009-11-07 3 views
1

숫자가 더 많은 XML 요소를 사용할 수 있습니다.XSL 가변 개수의 자식 노드

이와 같은

:

<Images> 
    <Image1>C:\Path\To\AnImage</Image1> 

    <Image2>C:\Path\To\AnotherImage</Image2> 
</Images> 

각 XML 문서의 이미지의 크기는 가변적이다. 내 XSL 파일에 태그 안의 모든 요소가 표시되도록하려면 어떻게해야합니까?

각 ImageX 태그 내부에있는 각 문자열을 Img src = "stringfromxmlelement"에 XSL로 입력하고 싶습니까? 이것이 가능한가?

토니

+0

URL을 대신하여 로컬 디스크 파일 시스템 경로를 사용하면 클라이언트와 서버가 ** 같은 ** 시스템에서 실행될 때만 작동한다는 경고 만받습니다. – BalusC

답변

7
<xsl:template match="Images/*[starts-with(name(),'Image']"> 
<img src="{.}" /> 
</xsl:template> 

는, 아마도 당신은 XML 태그 이름을 변경할 수 없습니다, 그러나 더 나은 내부 태그의 이름을 것입니다 ImageX가 아닌 Image로 표시됩니다. 이는 아마도 불필요한 것입니다.

+0

태그 이름에 대해 동의 함 - 태그 이름을 구별하거나 구분할 필요가있는 경우 적절한 속성을 추가해야합니다. – Murph

+0

무엇이 ''입니까? 나는 이것이 불법이라고 확신한다. – Tomalak

+0

닫기 태그를 입력하는 것은 불법입니다. xsl : template 태그를 제대로 닫아야합니다. –

1

나는이 라인을 따라 뭔가 시도를하려는 :

<xsl:template match="Images"> 
    <xsl:for-each select="*"> 
    <img src="{text()}" /> 
    </xsl:for-each> 
</xsl:template> 
BTW
관련 문제