Я использую преобразование XSLT 1.0 с использованием Delphi/MSXML. XSLT идет какЧто можно сделать, если преобразование XSLT с использованием msxml не соответствует корневому узлу ('/')?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:lh="http://localhost"
version="1.0">
<xsl:output method="html" omit-xml-declaration="yes" indent="yes" encoding="ISO-8859-1" />
<xsl:template match="@*|node()">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/">
<html>
<body>
<h2>My Book Collection</h2>
<table border="1">
<tr>
<th>Author</th>
<th>Title</th>
</tr>
<xsl:for-each select="lh:library/lh:book">
<tr>
<td><xsl:value-of select="@author"/></td>
<td><xsl:value-of select="."/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
и XML books.xml
будет определить, как
<?xml version="1.0" encoding="UTF-8"?>
<library xmlns="http://localhost">
<book author="Michael Howard">Writing Secure Code</book>
<book author="Michael Kay">XSLT Reference</book>
</library>
Когда я запускаю этот XSLT transformation using Delphi/MSXML, он не выводит ничего.
Saxon, для справки, дает следующий результат (1,0/2,0 предупреждение не входит в комплект):
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:lh="http://localhost">
<body>
<h2>My Book Collection</h2>
<table border="1">
<tr>
<th>Author</th>
<th>Title</th>
</tr>
<tr>
<td>Michael Howard</td>
<td>Writing Secure Code</td>
</tr>
<tr>
<td>Michael Kay</td>
<td>XSLT Reference</td>
</tr>
</table>
</body>
</html>
Что я могу делать с XML (XSLT это не для меня, чтобы изменить), чтобы дать тот же результат, что и в Саксоне?
Спасибо Мартину! Это потрясающе - я действительно ценю это! :) Одно примечание: документация Delphi для класса реализации [TXMLDocument] (http://docwiki.embarcadero.com/Libraries/XE6/en/Xml.XMLDoc.TXMLDocument_Properties) говорит: «DocumentElement предоставляет доступ к корневому узлу XML-документ «while» Node предоставляет доступ к узлу документа для XML-документа, который я считаю немного запутанным. – conciliator