以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DOM/SAX/XPath 』 (http://bbs.xml.org.cn/list.asp?boardid=11) ---- [求助]寻找如下节点应该如何用xpath表示? (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=46497) |
-- 作者:cd_eat -- 发布时间:5/6/2007 9:58:00 PM -- [求助]寻找如下节点应该如何用xpath表示? <root> <author loop="true"> <book loop="true"> </book > </author > <root> 如何找到有loop="true"属性,但祖先中没有loop="true"属性的节点,如上述author(实现不知道结点名)? |
-- 作者:wpdforever -- 发布时间:10/11/2007 4:11:00 PM -- testing case: <?xml version="1.0"?> <level1> <root name="r1"> <author loop="true" name="a1"> <book loop="true" name="b1"></book > </author > </root> <root name="r2"> <author name="a2"> <book loop="true" name="b2">asdf</book > </author > </root> <root name="r3"> <author name="a3"> <book name="b3"> <book1 loop="true" name="b11"/> </book > </author > </root> </level1> ----------------------------------------------- <?xml version="1.0" encoding="GB2312" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" /> <xsl:template match="/"> <xsl:for-each select="//*[@loop='true']/parent::*[not(@loop='true')]"> <xsl:text> </xsl:text> <xsl:value-of select="./@name"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> 我也是刚刚学,你看看这个可以不,运行出来的结果是r1,a2,b3对应的节点 祖先节点暂时不知道怎么弄,看看有没有帮助
|
-- 作者:wpdforever -- 发布时间:10/11/2007 4:39:00 PM -- 想了一下,祖先节点也可行 过滤条件为://*[@loop='true']/ancestor::*[not(@loop='true')]/child::*[@loop='true'] //*[@loop='true']/ancestor::*表示所有有loop属性的祖先节点 后面再过滤掉有loop属性的祖先节点和该节点的子节点 最后找那些子节点中有loop属性的节点 好像比较绕,有点错误,不过大致思想是这样子吧? |
-- 作者:teadrunk -- 发布时间:10/12/2007 11:14:00 AM -- *[@loop='true'][ancestor::*[not(@loop='true')]] |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
62.500ms |