我正在编写一个XSL转换程序来将XML转换为HTML。这是我的枪.xml:

<?xml version="1.0" encoding="utf-8"?>

<?xml-stylesheet type="text/xsl" href="guns.xslt"?>
<guns xsi:noNamespaceSchemaLocation="guns2.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <gun>
        <model>revolver</model>
        <handy>1</handy>
        <origin>Britain</origin>
        <ttc>20mm</ttc>
    </gun>
</guns>

这里是guns.xslt:
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match = "/">
        <html>
            <body>
                <h2>Gun Collection</h2>
                <table border = "1">
                    <tr bgcolor = "#9acd32">
                        <th>Model</th>
                        <th>Origin</th>
                        <th>TTC</th>
                    </tr>
                    <xsl:for-each select="guns/gun">
                        <tr>
                            <td><xsl:value-of select = "model"/></td>
                            <td><xsl:value-of select = "handy"/></td>
                            <td><xsl:value-of select = "origin"/></td>
                            <td><xsl:value-of select = "ttc"/></td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

两个文件都位于同一个包中,但XPAth无法识别"guns/gun"块中的for-each。我错过了什么?

最佳答案

您已在xml样式表中声明为“text/xsl”,请将文件扩展名从“guns.xslt”更改为“guns.xsl”,并将xml更改如下:

<?xml-stylesheet type="text/xsl" href="guns.xsl"?>

那么您的结果如下:
html - XPath无法识别路径-LMLPHP

10-04 16:53
查看更多