关于xsl取得节点位置的问题
最下面是xml文件的节点,我想用xsl取得
"纪立金;男,1964年7月3日出生,山东临朐人 "
这个值,怎样得到节点位置呢?
这里的所有DIV都是并列关系,我想用 position() 得到 "作者简介 "这个DIV的位置,再在这个位置加一,就能得到相对的位置,请各位高手帮忙看一下
请帮忙在这里完善代码:
<xsl:element name= "author " >
<xsl:value-of select= " "/>
</xsl:element>
可能会用到
contains(string(.), '作者简介 '):
---------------------------下面是xml文件
<div class= 'right_blank '> </div>
<div class= 'right_title1 '> 内容提要 </div>
<div class= 'right_content '> “上海科技馆探秘丛书”把重点放在“揭密”上, </div>
<div class= 'right_blank '> </div>
<div class= 'right_title1 '> 作者简介 </div>
<div class= 'right_content '> 纪立金;男,1964年7月3日出生,山东临朐人 <br /> </div>
<div class= 'right_blank '> </div>
<div class= 'right_title1 '> 编辑推荐 </div>
<div class= 'right_content '> “上海科技馆探秘丛书”第一辑包括《生物万象》 </div>
[解决办法]
following-sibling::div[@class= 'right_content '][1]
的意思是,同层的下一个div,条件:class= 'right_content ',位置=1
[解决办法]
我试了下,可以取到.不过上面的写的潦草些,xsl后面都少了 ": ",test后面的是 "= ".
取位置也要先找到文本内容是 "作者简介 "的元素,然后再在位置上加1找到指定元素吗?那象上面那个就是相对于当前位置再加1找到的相对位置啊.看下你提到的解决方法:
<xsl:if test= "contains(string(), '作者简介 ') ">
<!--下面的就是纪立金;男,1964年7月3日出生,山东临朐人 <br /> -->
<xsl:variable name= "v1 " select= "position() "/>
<xsl:value-of select= "parent::node()/div[$v1+1] "/>
</xsl:if>
这个就是根据绝对位置处理的.是否比上面那个简单呢?