如何在 XML 中的每个节点之间放置<hr/>

  • 本文关键字:hr 之间 节点 XML xml xslt
  • 更新时间 :
  • 英文 :


嗨,我只是想在每个页面节点之间放置一个<hr>标签来分隔内容

这是XML文件

XML:

<site>
   <page>
  <content><p align="center"> thank you</p>
   <P align="center">
     <FONT size="2" face="Tahoma">
       <p>some data too</p>
     </FONT>
   </P>
  </content>
   </page>
   <page>
  <content><p>some data</p>
    </content>
    </page>
    </site>

,这是xsl File

XSL:

 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
  <html>
  <body>
    <xsl:copy-of select="site/page/content"/><hr/>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

的问题是,这行显示在输出的末尾,我需要它在每个页面节点之间谢谢你

您可以在这里使用基于模板的方法。有一个与content元素匹配的模板,您只需复制该节点的数据,并将hr元素放在

之后
<xsl:template match="content">
   <xsl:copy-of select="*" />
   <hr />
</xsl:template>

那么,不做<xsl:copy-of select="site/page/content"/>,而做<xsl:apply-templates select="site/page/content"/>

试试这个XSLT

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <html>
         <body>
            <xsl:apply-templates select="site/page/content"/>
         </body>
      </html>
   </xsl:template>
   <xsl:template match="content">
      <xsl:copy-of select="*"/>
      <hr/>
   </xsl:template>
</xsl:stylesheet>

最新更新