似乎有很多与此主题相关的信息,但没有人帮助我:(我使用eclipse创建.xsd文件来玷污xml的模式。这很有用。然后我生成了一个.xml文件(在eclipse中)并填充了一些信息.XML文件看起来也不错。问题是我想在Web浏览器中显示这个XML文件(为了便于阅读),我想我需要一个xsl样式表来执行此操作。无论我尝试什么,我都无法从我的XML文件中挖掘出任何信息。我尝试过在网上找到的各种命名空间类型的东西都无济于事。有人可以帮我弄清楚如何将.xsl编码为从我的.xml文件中挖出数据?提前多谢。
以下是一个非常简单的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="calibrationStylesheet.xsl"?>
<tns:calibration xmlns:tns="http://www.example.org/calibrationSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/calibrationSchema calibrationSchema.xsd ">
<tns:Date>2013-07-16</tns:Date>
<tns:Time>11:00:00</tns:Time>
<tns:Temp>25.5</tns:Temp>
<tns:hardware>
<tns:NAnalyzers>4</tns:NAnalyzers>
<tns:NGenerators>4</tns:NGenerators>
<tns:NPorts>4</tns:NPorts>
<tns:instr/>
</tns:hardware>
<tns:calGroup>
<tns:calGroupType>Analysis</tns:calGroupType>
<tns:pathLoss>
<tns:pathName>PathName</tns:pathName>
</tns:pathLoss>
</tns:calGroup>
</tns:calibration>
这是xsl样式表。我只想读出Temp作为一个例子,但希望能够读取所有数据。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://wwwe.w3.org/2001/XMLSchema"
xmlns:tns="http://www.example.org/calibrationSchema"
xs:schemaLocation="http://www.example.org/calibrationSchema calibrationSchema.xsd ">
<xsl:template match="/">
<html>
<body>
Hello
<xsl:value-of select="//tns:calibration/Temp"></xsl:value-of>
After
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我尝试很多东西绝对是一团糟。我怎样才能解决这个问题?再次感谢。
答案 0 :(得分:1)
如果您有命名空间中的节点,则在引用任何节点时需要使用命名空间前缀,而不仅仅是顶级节点:
<xsl:value-of select="tns:calibration/tns:Temp" />