2014-02-11 3 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

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