XSLT Match проблема - PullRequest
       2

XSLT Match проблема

0 голосов
/ 17 марта 2011

У меня следующий вопрос по XSLT:

Предположим, у меня есть этот XML

 <items>
    <item>
      <type>dog</type>
      <color>brown</color>
    </item>
    <item>
      <type>dog</type>
      <color>brown</color>
    </item>
    <item>
      <type/>
      <color>none</color>
    </item>
    <item>
      <type>dog</type>
      <color>black</color>
    </item>
 </items>

Если я использую следующее в xsl 1.0:

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

    <xsl:template match="item[type='dog']">
        <item>
            <itemType><xsl:value-of select="type"/></itemType>
            <itemColor><xsl:value-of select="color"/></itemColor>
        </item>
    </xsl:template>

</xsl:stylesheet>

Это будетпоказывать только первые совпадения перед пустым узлом.

Есть ли что-то, что я пропускаю?

1 Ответ

1 голос
/ 17 марта 2011

Простой пример работает для меня, когда я загружаю test.xml в IE8.Я получаю вывод dog dog dog

Сохраните это как text.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<items>
    <item>
      <type>dog</type>
    </item>
    <item>
      <type>dog</type>
    </item>
    <item>
      <type>cat</type>
    </item>
    <item>
      <type>dog</type>
    </item>
</items>

Сохраните это как test.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <xsl:apply-templates />
    </body>
    </html>
</xsl:template>
<xsl:template match="item"/> <!-- default item match (prints nothing) -->
<xsl:template match="item[type='dog']">
    <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>

Если это не помогает, пожалуйста,отредактируйте свой вопрос с более подробной информацией о вашей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...