日期:2014-05-17  浏览次数:21087 次

请教xml用xsl控制显示的方法
我有一个xml文件,文档结构如下
<?xml   version= "1.0 "   encoding= "UTF-8 "?>
<ITEMS>
<ITEM>
<ID> 732727804C524D08B6D4DA944F32A938 </ID>
<TITLE> 主题 </TITLE>
<DATE> 2007年04月26日 </DATE>
<description> <![CDATA[详细说明]]> </description> </ITEM>
<ITEM>
<ID> 732727804C524D08B6D4DA944F32A938 </ID>
<TITLE> 主题 </TITLE>
<DATE> 2007年04月26日 </DATE>
<description> <![CDATA[详细说明]]> </description> </ITEM>
<ITEM>
<ID> 732727804C524D08B6D4DA944F32A938 </ID>
<TITLE> 主题 </TITLE>
<DATE> 2007年04月26日 </DATE>
<description> <![CDATA[详细说明]]> </description> </ITEM>
</ITEMS>
我现在用js像xsl里面传入了一个id,例如‘732727804C524D08B6D4DA944F32A938’,现在我想将id为‘732727804C524D08B6D4DA944F32A938’的数据显示出来(我现在使用的是循环,但是会多次使用到也就是说每打开一次就会将xml文档循环4,5次,现在xml文档数据比较少,还看不出性能,但是如果数据多了,我想性能也会下降的)

问题:
1.不知道大家有什么好的办法,不用循环取数据?
2.我如何可以再取出这个数据之后,再取出他的前一条和后一条数据呢?如果这条数据是最后一条,那么就显示第一条数据
3.我能否在xml中设置一个变量例如名称为index,在第一次循环的时候给这个index赋值,以后就取这个位置的数据,以及他前后的数据?

------解决方案--------------------
1.用 DOM + XPATH "/ITEMS/ITEM/ID/text()= '732727804C524D08B6D4DA944F32A938 '] "
2.DOM Node对象属性 nextSibling previousSibling firstChild lastChild就可以解决问题了
3.加一个Node即可
总之用DOM处理就可以了