使用.xsl样式表在Web浏览器中显示从eclipse xsd生成的XML

时间:2013-07-16 20:07:37

标签: xml xslt xsd

似乎有很多与此主题相关的信息,但没有人帮助我:(我使用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>

我尝试很多东西绝对是一团糟。我怎样才能解决这个问题?再次感谢。

1 个答案:

答案 0 :(得分:1)

如果您有命名空间中的节点,则在引用任何节点时需要使用命名空间前缀,而不仅仅是顶级节点:

<xsl:value-of select="tns:calibration/tns:Temp" />