以文本方式查看主题 - 中文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=74144) |
-- 作者:gaoj2008 -- 发布时间:4/13/2009 8:37:00 PM -- 请高手帮忙写一个xpath XML文件如下: <ROOT> <A> <AA> abc </AA> </A> <B> </B> </ROOT> 想取到包含AA子元素且AA子元素的值为abc的节点,即取到A节点,请问Xpath该怎么写? |
-- 作者:hexun831012 -- 发布时间:4/13/2009 10:13:00 PM -- A[AA = 'abc'] |
-- 作者:Qr -- 发布时间:4/13/2009 11:24:00 PM --
正解 |
-- 作者:gaoj2008 -- 发布时间:4/14/2009 4:22:00 PM -- 我使用的xml文件这样直接写一直找不到,必须这样写才行: 如我想找到A节点,Xpath得这样写 : /*[name()='Root']/*[name()='A'] 大家知道为什么吗?是不是由于命名空间的原因啊? 由于这样找出得节点为所有的A节点,再加"包含AA子元素且AA子元素的值为abc的节点"这样一个条件,该怎么写呢? |
-- 作者:hexun831012 -- 发布时间:4/14/2009 4:25:00 PM -- /*[name()='Root']/*[name()='A']不就=Root/A/吗 我知道你错在那了,你没搞清楚从哪个节点开始XPath,XPath是相对的 |
-- 作者:gaoj2008 -- 发布时间:4/14/2009 4:51:00 PM -- ROOT不就是根节点吗? 我认为取A节点应该这样写: /ROOT/A,可是这样写取不到,只好按照上述带星花的形式写了. |
-- 作者:hexun831012 -- 发布时间:4/14/2009 4:53:00 PM -- 都说Xpath是相对的,你当前节点是Root,那么取A就是A 如果你当前是文档,那就是Root/A 如果你当前就是A,那就是. |
-- 作者:gaoj2008 -- 发布时间:4/14/2009 5:13:00 PM -- 我用的是dom4j,也就是说, 如果我当前是:document,那么取A节点就是:document .selectNodes("Root/A"); 如果我当前是:root,那么取A节点就是:root .selectNodes("A"); 取当前节点的子节点不用加"/"吗? |
-- 作者:hexun831012 -- 发布时间:4/14/2009 5:15:00 PM -- 在文档时就是Root/A 在Root就直接是A不错 第一个子节点时A[position() = 1],可以简写为A[1] |
-- 作者:gaoj2008 -- 发布时间:4/14/2009 5:22:00 PM --
这样啊,我去试,非常感谢.首次深入XML,还请多多指教. |
-- 作者:hexun831012 -- 发布时间:4/14/2009 5:23:00 PM -- 分内之事,不必客气 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
66.406ms |