如何使用XSLT(例如包含XML)一次显示一个结果
我正在为谷歌搜索设备创建一个新的XSLT,我遇到了一个我无法解决的问题 My search.xml具有以下结构:如何使用XSLT(例如包含XML)一次显示一个结果,xml,xslt,google-search-appliance,Xml,Xslt,Google Search Appliance,我正在为谷歌搜索设备创建一个新的XSLT,我遇到了一个我无法解决的问题 My search.xml具有以下结构: <GSP> <ENTOBRESULTS> <OBRES> <MODULE_RESULT> <Field name="fullname">Dave Smith</Field> <Field name="title">Job title</Field>
<GSP>
<ENTOBRESULTS>
<OBRES>
<MODULE_RESULT>
<Field name="fullname">Dave Smith</Field>
<Field name="title">Job title</Field>
<Field name="telephonenumber">00000000</Field>
</MODULE_RESULT>
<MODULE_RESULT>
<Field name="fullname">John Smith</Field>
<Field name="title">Senior job title</Field>
<Field name="telephonenumber">00000001</Field>
</MODULE_RESULT>
</OBRES>
</ENTOBRESULTS>
</GSP>
戴夫·史密斯
职位名称
00000000
约翰·史密斯
高级职称
00000001
我创建的XSLT如下所示:
<xsl:for-each select="/GSP/ENTOBRESULTS/OBRES/MODULE_RESULT">
<dt>
<strong><a href="#"><xsl:value-of select="/GSP/ENTOBRESULTS/OBRES/MODULE_RESULT/Field[@name='fullname']"/></a></strong><br/>
<em><xsl:value-of select="/GSP/ENTOBRESULTS/OBRES/MODULE_RESULT/Field[@name='title']"/></em>
</dt>
<dd><xsl:value-of select="/GSP/ENTOBRESULTS/OBRES/MODULE_RESULT/Field[@name='telephonenumber']"/></dd>
</xsl:for-each>
我看到的问题是,结果以以下方式呈现:
<dt><strong><a href="#">Dave SmithJohnSmith</a></strong><br/><em>Job titleSenior job title</em></dt>
<dd>0000000000000001</dd>
职位或职位
0000000000000001
在浏览器中使它们看起来像这样:
戴夫·史密斯
职位
000000000000000 1
谁能帮我解释一下这个问题吗?我觉得这是一个非常基本的XSLT错误,我并不是一个真正的XSLT专家
非常感谢您的帮助
感谢A
for each
更改了上下文节点,因此在for each
中,您应该分别使用相对表达式,例如
<xsl:for-each select="/GSP/ENTOBRESULTS/OBRES/MODULE_RESULT">
<dt>
<strong><a href="#"><xsl:value-of select="Field[@name='fullname']"/></a></strong><br/>
<em><xsl:value-of select="Field[@name='title']"/></em>
</dt>
<dd><xsl:value-of select="Field[@name='telephonenumber']"/></dd>
</xsl:for-each>
Afor each
更改上下文节点,因此在for each
中,您应该分别使用相对表达式,例如
<xsl:for-each select="/GSP/ENTOBRESULTS/OBRES/MODULE_RESULT">
<dt>
<strong><a href="#"><xsl:value-of select="Field[@name='fullname']"/></a></strong><br/>
<em><xsl:value-of select="Field[@name='title']"/></em>
</dt>
<dd><xsl:value-of select="Field[@name='telephonenumber']"/></dd>
</xsl:for-each>