首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CHM中的XML/XSLT ALink菜单反向连接

CHM中的XML/XSLT ALink菜单反向连接
EN

Stack Overflow用户
提问于 2011-07-18 22:11:13
回答 1查看 201关注 0票数 1

在过去的几天里,我一直在试图解决XSLT/XML问题(这是我很高兴尝试修复的代码)。使用XSLT,正在获取XML标记“查看”中的内容,并试图在中创建带有标记的“查看”(或相关文件)菜单。$filename是一个全局变量,所以如果这是somefile.xml,那么$filename就是somefile.xml。

当我试图将文件链接到一起创建ALink时,实际的问题就在于此。( {$filename}_SEE_ALSO链接到节点()_SEE_ALSO},文件确实链接.但却反过来了。假设你有函数X,你想让它在“也看”中显示函数Y。通常,您会将<see>Function Y</see>放在函数X的文件中(所以函数X->函数Y)。然而,在下面的代码中,它所做的是在函数Y中显示函数X(函数X<-函数Y) -所以相反。所以,当你点击函数X的“也看”,你会得到一个空白弹出,而在函数Y,它会弹出与“函数X”。

以下是XML标记:

代码语言:javascript
复制
<function>
 <showSeeAlso>
   <see>Tag1</see>
   <see>Tag2</see>
   <see>Tag3</see>
 </showSeeAlso>
</function>

这是XSLT:

代码语言:javascript
复制
<xsl:template match="showSeeAlso">
 <object id="seeAlso" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" codebase="HHCTRL.ocx#Version=4,72,8252,0">
    <param name="Command" value="ALink, MENU"/>
    <param name="Text" value="Text:See Also"/>
    <param name="Font" value="Arial,8pt,,,underline"/>
    <param name="Flags" value="1"/>
    <param name="Item1" value=""/>
    <param name="Item2" value="{$filename}_SEE_ALSO"/>
  </object>

<xsl:apply-templates select="see"/>
</xsl:template>

 <xsl:template match="see">
 <xsl:param name="name" select="."/>
  <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
  <param name="ALink Name" value="{concat(node(),'_SEE_ALSO')}"/>
 </object>

</xsl:template>

任何/所有的帮助都非常感激,这在过去的几天里一直是我生存的祸根。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-19 23:30:44

我不知道这会不会对其他人有帮助,但我已经想出了一个解决办法。我从ALinks转到了相关的主题,并修复了代码。结果如下:

XML:

代码语言:javascript
复制
<showSeeAlso/>
<see>tag1</see> 
<see>tag2</see>
<see>tag3</see>

XSLT:

代码语言:javascript
复制
  <xsl:if test="showSeeAlso">
    <object id="hhctrl" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" codebase="hhctrl.ocx#Version=6,1,7600,16385">
    <param name="Command" value="Related Topics, DIALOG"/>
    <param name="Text" value="Text:See Also"/>
    <xsl:apply-templates select="see"/>
   </object>
  </xsl:if>

  <xsl:template match="see">
    <xsl:variable name="tag" select="."/>
     <xsl:variable name="count">
  <xsl:number/>
 </xsl:variable>

 <param name="Item{$count}" value="{$tag};{$tag}.html"/>

 </xsl:template>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6740048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档