2017-02-08 70 views
0

我正在使用xsl文件來讀取XML以創建頁面。在我的頁面的頂部,我有:如何在我的頁面頂部顯示<xsl:template match =「// step [@ ID ='xxx']」>信息?

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="//step[@ID='CCRI001']"> 

<html> 
<head> 
<title>Help - <xsl:value-of select="infoItems"/></title> 
<link rel="stylesheet" href="" type="text/css" /> 

<script language="JavaScript" for="window" event="onload"> 
function resizeWindow() 
{ 
top.resizeTo(500,300) 
} 

</script> 

</head> 
<body> 
<p><b>Functional Owner: </b><xsl:value-of select="title" /></p> 
<p><b>Number of Items: </b><xsl:value-of select="infoItems" /></p> 
<p><b>Point 1: </b><xsl:value-of select="information1" /></p> 
<p><b>Point 2: </b><xsl:value-of select="information2" /></p> 
</body> 
</html> 
</xsl:template> 
</xsl:stylesheet> 

XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <alerts> 
     <step ID="CCRA001"> 
      <title>ho</title> 
      <infoItems>4</infoItems> 
      <information1>z</information1> 
      <information2>y</information2> 
      <information3>x</information3> 
      <information4>w</information4> 
     </step> 
     <step ID="CCRI001"> 
      <title>hi</title> 
      <infoItems>4</infoItems> 
      <information1>a</information1> 
      <information2>b</information2> 
      <information3>c</information3> 
      <information4>d</information4> 
     </step> 
    </alerts> 
</xml> 

在我的頁面的頂部,當我打開HTML,我看到的值xsl:template match =「// step [@ID ='CCRI001']」(Hi 4 abcd),它們都來自XML,我不確定它爲什麼顯示在那裏。

有什麼想法?

謝謝。

+0

請發佈一個可重複使用的示例,其中包括一個XML和一個小而完整的XSLT - 請參閱:[mcve]。 –

+0

嗨。我添加了更多信息。謝謝。 – brentfraser

回答

0

您所看到的是將build-in template rules應用於您沒有匹配模板(主要是第一個step及其後代)的節點的結果。

嘗試代替:

XSLT 1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="/xml"> 
<html> 
<head> 
<title>Help - <xsl:value-of select="infoItems"/></title> 
<link rel="stylesheet" href="" type="text/css" /> 
<script language="JavaScript" for="window" event="onload"> 
function resizeWindow() 
{ 
top.resizeTo(500,300) 
} 
</script> 
</head> 
<body> 
<xsl:apply-templates select="alerts/step[@ID='CCRI001']"/> 
</body> 
</html> 
</xsl:template> 

<xsl:template match="step"> 
<p><b>Functional Owner: </b><xsl:value-of select="title" /></p> 
<p><b>Number of Items: </b><xsl:value-of select="infoItems" /></p> 
<p><b>Point 1: </b><xsl:value-of select="information1" /></p> 
<p><b>Point 2: </b><xsl:value-of select="information2" /></p> 
</xsl:template> 

</xsl:stylesheet> 

注意,開始的匹配圖案與//是無意義的。

+0

感謝您的幫助。這是完美的,它運作得非常好。謝謝。 – brentfraser

相關問題