我在xslt 1.0中使用xpath提取邻居链接时遇到问题

时间:2013-11-25 21:31:59

标签: xml xslt xpath

我需要从这里得到邻居链接:

  <div class="strankovani text-violet-dark bold">page -

 <a href="vypis-inzeratov.php?site=1" class="odkaz2">1</a>
 | <a href="vypis-inzeratov.php?site=2" class="odkaz2">2</a>
 | <a href="vypis-inzeratov.php?site=3" class="odkaz2">3</a>
 | <a href="vypis-inzeratov.php?site=4" class="odkaz2">4</a>

 | <a href="vypis-inzeratov.php?site=5" class="odkaz2"><u>5</u></a>

 | <a href="vypis-inzeratov.php?site=6" class="odkaz2">6</a>
 | <a href="vypis-inzeratov.php?site=7" class="odkaz2">7</a>
 | <a href="vypis-inzeratov.php?site=8" class="odkaz2">8</a>
 | <a href="vypis-inzeratov.php?site=9" class="odkaz2">9</a>
 | <a href="vypis-inzeratov.php?site=10" class="odkaz2">10</a>
 | <a href="vypis-inzeratov.php?site=11" class="odkaz2">11</a>
 </div>

其实我在第5页,我需要转到第6页。我想我需要使用以下兄弟。我试过这个:

    <xsl:apply-templates select="//xhtml:div[@class = 'strankovani text-violet-dark bold']/xhtml:a/xhtml:u/following-sibling::xhtml:a[1]/@href" mode="next"/>

我想拥有vypis-inzeratov.php?site = 6“。 但它不起作用,我不知道为什么,一些想法?

2 个答案:

答案 0 :(得分:1)

使用thix XPath:

//div[@class = 'strankovani text-violet-dark bold']/a/u/../following-sibling::a[1]

请记住添加名称空间前缀。

您的XPath不正确,因为u元素不包含任何兄弟。要获得所需a,您必须首先获得u的父级。

答案 1 :(得分:1)

我想你是说你试图选择紧跟在 a 元素后面的 a 元素,并将 u 作为子元素。

问题在于您当前的声明,您正试图选择 a 元素作为 u 元素的兄弟元素,当您真正想要父母的兄弟姐妹时的

请改为尝试:

<xsl:apply-templates 
   select="//xhtml:div[@class = 'strankovani text-violet-dark bold']
                      /xhtml:a[xhtml:u]
                      /following-sibling::xhtml:a[1]/@href" mode="next"/>