Получить 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)

Другие вопросы по тегам