Получить XML-элемент с идентификатором, используя Java
У меня есть XML, полученный из службы seedlist, как это.
<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()
метод
1 ответ
Если вы хотите придерживаться Abdera - это характерно для Atom- я не думаю, что вы можете получить это значение одним вызовом: вам нужно перечислить все wplc:field
использование элемента getFirstChild()
на родителя, а затем getNextSibling()
и проверьте на право id
значение с использованием getAttributeValue()
,
Если вы используете общий синтаксический анализатор XML, вы сможете получить это значение напрямую, используя XPath, например:
/atom:feed/wplc:field[@id='securecontext']
(определив префиксы atom
за http://www.w3.org/2005/Atom
а также wplc
за http://www.ibm.com/wplc/atom/1.0
)