尝试显示xsl内容,但无法让孙子显示

时间:2019-03-08 01:08:38

标签: xml xslt

我已经成功显示了其中两列的内容,但是似乎无法在第三列中显示任何内容。

也就是说,我想在文件孙子目录下创建指向pdf文件的链接。

这是xml

        <objects>
        <img id="m" modTime="2019-03-07-03:30:19" url="http://qcoast.geosite.com.au/staging/packages/qcoast/GeoPackage882_AIRLIE173_335_.jpg" format="jpg"/>
        <img id="a" modTime="2019-03-07-03:30:19" url="http://qcoast.geosite.com.au/staging/packages/qcoast/GeoPackage_qcoast_882_siting.jpg" format="jpg"/>    
        <floorplan id="1" modTime="2019-03-07-03:30:19" url="http://qcoast.geosite.com.au/staging/packages/qcoast/GeoPackage_qcoast_882_fp1.jpg" format="jpg"/>
        <document id="3" modTime="2019-03-07-03:30:19" title="Brochure" url="http://qcoast.geosite.com.au/staging/packages/qcoast/GeoPackage_qcoast_882.pdf" format="pdf"/>                     

    </objects>

和xsl

    <xsl:for-each select="residential">
    <tr>
      <td><xsl:value-of select="headline"/></td>
      <td><xsl:value-of select="priceView"/></td>
      <td><xsl:value-of select="document"/></td>
    </tr>
</xsl:for-each>

我已经通过https://www.freeformatter.com/xpath-tester.html检查了/ root / residential / objects / document路径,它为“ document”返回了正确的结果,但仍然无法显示。

这是我得到的输出。 output

1 个答案:

答案 0 :(得分:0)

如果document的路径为/root/residential/objects/document,并且您处于residential的上下文中,则需要使用:

<xsl:value-of select="objects/document"/>

以获取document的值。

但是,在您发布的代码段中,document元素没有任何值。您需要选择其属性之一以获得有意义的结果,例如:

<xsl:value-of select="objects/document/@url"/>

其余部分取决于此表达式是否可以选择多个document,以及您使用的是XSLT 1.0还是2.0。