2015-02-05 8 views
0

Я изо всех сил пытаюсь создать цикл for-each, в котором будет указано количество дочерних узлов. XML-выглядит следующим образом:XSLT 1.0 петля через вспомогательные узлы

<Product> 
    <Name>Name</Name> 
    <Colors xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
     <d4p1:string>String one</d4p1:string> 
     <d4p1:string>String teo</d4p1:string> 
     <d4p1:string>String three</d4p1:string> 
     <d4p1:string>String four</d4p1:string> 
    </Colors> 
    <Price>329</Price> 
</Product> 

и до сих пор я пытался что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:telenor="http://test" exclude-result-prefixes="test msxsl"> 
<xsl:template match="/"> 
    <xsl:for-each select="Product/Colors"/> 
     <xsl:value-of select="@d4p1"/> 
    </xsl:for-each> 
</xsl:template> 

Но это не работает. В принципе, я просто смотрю на список, как это:

Строка один Строка два Строки три строки четыре

ответ

0

Очень просто:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> 
<xsl:template match="/"> 
    <xsl:for-each select="Product/Colors/d4p1:string"> 
     <xsl:value-of select="."/> 
     <xsl:text> </xsl:text> 
    </xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 
+0

Спасибо очень много. – Meek

Смежные вопросы