2014-11-20 2 views
0

У меня есть XML-файл, который читает данные извне из файла HTML.Как читать данные внешнего файла в xml через xslt

XML File

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="Test.xsl"?> 
<!-- Edited by XMLSpy --> 
<catalog> 
    <cd> 
     <title>Empire Burlesque</title> 
     <external><![CDATA[2F434A1.htm]]></external> 
    </cd> 
    <cd> 
     <title>Hide your heart</title> 
     <external><![CDATA[2F434A1.htm]]></external> 
    </cd> 
</catalog> 

XSLT Файл

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- Edited by XMLSpy® --> 
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <table border="1"> 
     <tr bgcolor="#9acd32"> 
     <th>Title</th> 
     <th>External</th> 
     </tr> 
     <xsl:for-each select="catalog/cd"> 
     <tr> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="external"/></td> 
     </tr> 
     </xsl:for-each> 
    </table> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

Данные, которые должны быть распечатаны доступна в HTML файл, когда мы открываем этот XML мы получаем имя файла HTML, а данные.

Просьба сообщить нам, как получить данные для отображения в XSLT, на который ссылается xml.

ответ

1

Вы можете использовать iframe, например.

<tr> 
    <td><xsl:value-of select="title"/></td> 
    <td><iframe src="{external}"/></td> 
    </tr> 

Конечно, это делегирует задачу визуализации и в том числе HTML-документ в браузере, который показывает HTML создает ваш XSLT. Но XSLT не имеет возможности включить HTML-документ, если вы не знаете, что это хорошо сформированный XHTML, в этом случае вы могли бы использовать

<tr> 
    <td><xsl:value-of select="title"/></td> 
    <td><xsl:copy-of select="document(external)//body/node()"/></td> 
    </tr> 
Смежные вопросы