如何使用XSLT(例如包含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>

我正在为谷歌搜索设备创建一个新的XSLT,我遇到了一个我无法解决的问题

My search.xml具有以下结构:

<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>



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>