首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

关于xsl取得节点位置的有关问题

2012-03-24 
关于xsl取得节点位置的问题最下面是xml文件的节点,我想用xsl取得纪立金;男,1964年7月3日出生,山东临朐人

关于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>
这个就是根据绝对位置处理的.是否比上面那个简单呢?

热点排行