以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助] 从叶节点返回根节点时出现重复根节点,如何去除?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=76274)


--  作者:direktor
--  发布时间:8/5/2009 6:16:00 AM

--  [求助] 从叶节点返回根节点时出现重复根节点,如何去除?
先谢过了,
XML文档树的结构大概是这样的:
<Tree>
  <U id=1>
    <E>
      <name>U1</name>
      <project>
         <pname>p1</pname>
         <pyear>2007</pyear>
         <pyear>2008</pyear>
      </project>
      <project>
         <pname>p2</pname>
         <pyear>2007</pyear>
         <pyear>2008</pyear>
      </project>
   </E>
   <U id=2>
     <E>
      <name>U2</name>
      <project>
         <pname>p3</pname>
         <pyear>2007</pyear>
      </project>
      <project>
         <pname>p4</pname>
         <pyear>2008</pyear>
      </project>
     </E>
     <U id=3>
      <E>
       <name>U3</name>
       <project>
         <pname>p5</pname>
         <pyear>2007</pyear>
         <pyear>2008</pyear>
       </project>
       <project>
         <pname>p6</pname>
         <pyear>2007</pyear>
         <pyear>2008</pyear>
       </project>
     </E>
   </U>
   <U id=3>
     ....
   </U>
  </U>
<U id=2>
   ....
</U>
</U>
<U id=1>
  .....
</U>
......
</Tree>

每一级可以有多个U,U下面有E,E下面有一个name和多个project,  想要的结果是:当project的pyear是2008的时候从根节点一层一层输出(相当于大标题下有小标题,然后还有子标题,最后才是project)。

我的想法是:从根节点用for-each来查找所有的pyear,如果pyear=2008,那么返回祖先节点U(id=1)。 但是返回的时候就会出现重复元素, 问题就出在用for-each查找判断pyear;用for-each向下查找是没问题的,但是向上返回就不行了。

请各位帮忙,我该怎样返回根节点时不会出现重复呢?

谢谢谢谢~~


--  作者:hexun831012
--  发布时间:8/5/2009 3:13:00 PM

--  
Tree/U[E/project/pyear = '2008']
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms