0

この単純な(私が望む)問題について、どんな助けもいただければ幸いです。このxsl:for-eachXML ドキュメントに名前空間を追加した後、 は要素を見つけることができません:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="cdsort.xsl"?>
    <catalog xmlns="http://www.mycompany.com/test" >
      <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
      </cd>
      <cd>
        <title>Tupelo Honey</title>
        <artist>Van Morrison</artist>
      </cd>
    </catalog>

XSL コードは次のとおりです。

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
    xmlns:vv="http://www.mycompany.com/test"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <html>
      <body>
    <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="vv:catalog/cd">
        <tr>
          <td><xsl:value-of select="title" /></td>
          <td><xsl:value-of select="artist" /></td>
        </tr>
      </xsl:for-each>
    </table>
      </body>
    </html>
  </xsl:template>

4

1 に答える 1

0

ドキュメント全体のデフォルトの名前空間を設定したので、xpathの子要素にもプレフィックスが必要です。

<xsl:for-each select="vv:catalog/vv:cd">
  <tr>
    <td><xsl:value-of select="vv:title" /></td>
    <td><xsl:value-of select="vv:artist" /></td>
  </tr>
</xsl:for-each>
于 2012-07-22T18:15:09.860 に答える