我有一个像这样从seedlist服务检索的xml。
<atom:feed xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:wplc="http://www.ibm.com/wplc/atom/1.0" xmlns:atom="http://www.w3.org/2005/Atom">
<atom:link href="/wps/images/icons/scope_search_wcm.gif" rel="icon"/>
<wplc:field id="name">Locations</wplc:field>
<wplc:field id="contentSourceType">Seedlist</wplc:field>
<wplc:field id="defaultcontext">/poc</wplc:field>
<wplc:field id="effectivedate">1354640637000</wplc:field>
<wplc:field id="modifier">uid=wpsadmin,o=defaultWIMFileBasedRealm</wplc:field>
<wplc:field id="securecontext">/mypoc</wplc:field>
<wplc:field id="search_controllable_uuid">f2bedbba-724e-420b-b066-5d0fef04c421</wplc:field>
<wplc:field id="locale">en</wplc:field>
我想检索/mypoc
<wplc:field id="securecontext">/mypoc</wplc:field>
wplc
标签有共同的本地名称field
所以我无法检索这个。
我使用Abdera
解析器解析xml。
如果可能的话,我想使用QName
或Feed.getSimpleExtension()
方法检索这个
如果您想坚持使用Abdera -这是特定于atom的-我不认为您可以通过单个调用获得该值:您需要在父节点上使用getFirstChild()
枚举所有wplc:field
元素,然后使用getNextSibling()
,并使用getAttributeValue()
检查正确的id
值。
如果您使用通用XML解析器,您应该能够使用XPath直接获得该值,如:
/atom:feed/wplc:field[@id='securecontext']
(为http://www.w3.org/2005/Atom
定义了前缀atom
,为http://www.ibm.com/wplc/atom/1.0
定义了前缀wplc
)