У меня сложный XML, и я пытаюсь написать преобразование XSL, чтобы преобразовать его в HTML. Может кто-нибудь, пожалуйста, помогите мне с этим?XSL-преобразование сложного XML
Вот XML
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="Mbooks.xsl"?>
<project>
<books>
<bookName>Eclpise</bookName>
<bookCount>3</bookCount>
<Data>
<NEW>
<bookNumber>book3687110</bookNumber>
<ISBN>927fd6ca660e5a9</ISBN>
<Isbninfo>
<IsbninfoDetails>
<IsbninfoName>new book</IsbninfoName>
<IsbninfoVersion>version 1</IsbninfoVersion>
</IsbninfoDetails>
<IsbninfoDetails>
<IsbninfoName> new book 1</IsbninfoName>
<IsbninfoVersion>version 2</IsbninfoVersion>
</IsbninfoDetails>
</Isbninfo>
</NEW>
<NEW>
<bookNumber>book3674796</bookNumber>
<ISBN>6fa276825144</ISBN>
<Isbninfo>
<IsbninfoDetails>
<IsbninfoName>new book 3</IsbninfoName>
<IsbninfoVersion>version 3</IsbninfoVersion>
</IsbninfoDetails>
<IsbninfoDetails>
<IsbninfoName>new book 4</IsbninfoName>
<IsbninfoVersion>version 4</IsbninfoVersion>
</IsbninfoDetails>
</Isbninfo>
</NEW>
</Data>
</books>
<books>
<bookName>ORACLE</bookName>
<bookCount>0</bookCount>
<Data>
</Data>
</books>
<books>
<bookName>MUSIC</bookName>
<bookCount>0</bookCount>
<Data>
</Data>
</books>
</project>
Вот XSLT.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>BOOK_INFORMATION </h2>
<table style="display: inline-block; border: 1px solid; float: left; ">
<tr bgcolor="#FFA500">
<th>book Name</th>
<th>book_Count</th>
<th>book_Number</th>
<th>ISBN</th>
<th>Isbninfo_Name</th>
<th>Isbninfo_Version</th>
</tr>
<xsl:for-each select="project/books">
<tr>
<td>
<xsl:value-of select="bookName"/>
</td>
<td>
<xsl:value-of select="bookCount"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Я не знаю, как бы я получить другую информацию: Я хочу, чтобы все это в одной таблице. Я пробовал делать <xsl:for-each>
внутри каждого, но он не работает.
эй спасибо за Ваш ответ, но это возможно, чтобы не дублировать название книги, book_count, BOOK_NUMBER и номер ISBN и мы можем добавить что-то вроде диапазона строк или так и сделать его похожим на одну соответствующую таблицу? Спасибо за помощь. – Maxyie
Да, это конечно возможно, но вы должны указать бит lttle лучше, что именно вы хотите - и то, что вы пробовали. – MiMo
Эй, извините за путаницу, что у меня есть причина. Мне нужна правильная таблица, в которой нужные поля не дублируются. Я пытаюсь использовать цикл foreach внутри цикла foreach, но я думаю, что он не работает так, как работает java или perl. Я добавил «пример html» в новый поток, так как я не могу его записать здесь – Maxyie