我在MySQL数据库中有一个表格的XML文件,我使用WebRowSet创建。
XML看起来像这样:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="Status.xslt" ?>
<webRowSet xmlns="http://java.sun.com/xml/ns/jdbc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jdbc http://java.sun.com/xml/ns/jdbc/webrowset.xsd">
<properties>
....
</properties>
<metadata>
....
</metadata>
<data>
<currentRow>
<columnValue>...</columnValue>
</currentRow>
...
</data>
</webRowSet>
(这是架构:http://java.sun.com/xml/ns/jdbc/webrowset.xsd)
我的目标是使用XSLT使XML更具可读性,这是我到目前为止所拥有的:
<?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><head></head><body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="columnValue">
<p style="color:red">
<xsl:value-of select="." />
</p>
</xsl:template>
</xsl:stylesheet>
当我在Firefox中打开.XML时,它只打印所有值 - 我希望columnValues为红色。当我将TEST放入columnValue模板时,它不会显示..
感谢任何帮助。
答案 0 :(得分:4)
在源XML中,columnValue
位于命名空间中:http://java.sun.com/xml/ns/jdbc
您尚未在XSLT中声明此命名空间。试试这个:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:j="http://java.sun.com/xml/ns/jdbc">
...
<xsl:template match="j:columnValue">
....