2014-02-11 169 views
1

我试图将xml转换为xsd模式转换为xhtml。将xml + xsd转换为xhtml

所以在我的XML文件,我有这样的事情:

<shf:BookShelf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="BookShelf BookShelf.xsd" 
     xmlns:shf="BookShelf" 
     xmlns:bk="BookType" 
     xmlns:cmn="CommonType"> 
    <shf:Book Category="Physics"> 
     <bk:Name></bk:Name> 
     <bk:Author> 
     <cmn:FirstName></cmn:FirstName> 
     <cmn:FamilyName></cmn:FamilyName> 
     </bk:Author> 
     <bk:Pages></bk:Pages> 
     <bk:Language></bk:Language> 
     <cmn:Source></cmn:Source> 
    </shf:Book> 
... 
</shf:BookShelf> 

我知道这将是更容易从单纯的XML到XHTML转换,但现在我有<shf:Book>,怎么可以参考该条目在我的xsl?这是我在我的XSL做了,但是没有奏效:

<xsl:for-each select="BookShelf/Book"> 
<tr> 
    <td><xsl:value-of select="Name"/></td>  
</tr> 
</xsl:for-each> 

回答

1

您可以使用:

<xsl:for-each select="shf:BookShelf/shf:Book"> 
    <tr> 
     <td><xsl:value-of select="bk:Name"/></td>  
    </tr> 
</xsl:for-each> 

而在你<xsl:stylesheet>声明命名空间:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" 
    xmlns:shf="BookShelf" xmlns:bk="BookType" xmlns:cmn="CommonType"> ... 
+0

谢谢,有用! – Blake