2017-02-08 10 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

 Смежные вопросы

  • Нет связанных вопросов^_^