【发布时间】:2015-02-26 08:08:02
【问题描述】:
我有以下 xml:
<?xml version="1.0" encoding="UTF-8"?>
<GSP VER="3.2">
<TM>0</TM>
<Q>monkey pay</Q>
<Context>
<total_results>3</total_results>
</Context>
<RES EN="3" SN="1">
<M>3</M>
<R N="1">
<U>link1</U>
<T>title1</T>
<S>snippet1</S>
</R>
<R N="2">
<U>link2</U>
<T>title2</T>
<S>snippet2</S>
<PageMap>
<DataObject type="metatags">
<Attribute name="viewport" value="width=992, maximum-scale=2.0" />
<Attribute name="dc.subject" value="atributevalue" />
<Attribute name="og:title" value="atributevalue" />
<Attribute name="og:description" value="atributevalue" />
<Attribute name="og:image" value="atributevalue" />
</DataObject>
<DataObject type="cse_image">
<Attribute name="src" value="atributevalue" />
</DataObject>
<DataObject type="cse_thumbnail">
<Attribute name="width" value="atributevalue" />
<Attribute name="height" value="atributevalue" />
<Attribute name="src" value="image2" />
</DataObject>
</PageMap>
</R>
<R N="3">
<U>link3</U>
<T>title3</T>
<S>snippet3</S>
</R>
</RES>
</GSP>
我需要在“DataObject”标签中获取标签“Attribute”的属性 name="src" 的值,该标签具有属性 type="cse_thumbnail"。
为此的 xpath 是: /GSP/RES/R[@N=2]/PageMap/DataObject[@type='cse_thumbnail']/Attribute[@name='src']/@value
你知道如何在 Java 中使用 DOMXpath 提取它吗?
现在我可以获取所有带有链接、标题和 sn-p 的 R 标签,但我无法提取 PageMap 值。
这就是我解析 R 标签的方式:
List resultNodes = new DOMXPath("/GSP/RES/R").selectNodes(domDoc);
Iterator nodeIter = resultNodes.iterator();
while (nodeIter.hasNext()) {
Object obj = nodeIter.next();
Element elem = (Element) object;
}
【问题讨论】: