2015-11-11 2 views
0

Я обнаружил, что пространство имен в теге «music» предотвращает xslt успешно конвертирует xml в html.namespace предотвращает xslt для скрытых xml для html

XML документа:

<?xml-stylesheet type="text/xsl" href="cd-demo.xsl"?> 
    <catalog xmlns:junos="http://xml.test.com"> 
     <music xmlns="http://xml.test.org"> 
      <cd> 
       <title>Empire Burlesque</title> 
       <artist>Bob Dylanee</artist> 
      </cd> 
     </music> 
    </catalog> 

если я удалить "XMLNS =" http://xml.test.org», преобразование будет успех

XSLT:.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<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="catalog/music/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> 
</xsl:stylesheet> 
+0

Мой вопрос: как игнорировать пространство имен, чтобы я мог успешно преобразовать его? – zhiang

ответ

1

В этом xml узел music и все вспомогательные узлы находятся в пространстве имен http://xml.test.org. Поэтому, когда вы обращаетесь к ним, вам необходимо указать правильное пространство имен.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:test="http://xml.test.org" exclude-result-prefixes="test"> 
    <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="catalog/test:music/test:cd"> 
         <tr> 
          <td> 
           <xsl:value-of select="test:title"/> 
          </td> 
          <td> 
           <xsl:value-of select="test:artist"/> 
          </td> 
         </tr> 
        </xsl:for-each> 
       </table> 
      </body> 
     </html> 
    </xsl:template> 
</xsl:stylesheet> 
+0

он работает, спасибо большое! – zhiang

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