2011-10-10 3 views
0

Я использую веб-службу REST для извлечения некоторых данных. В ответ я получаю длинный xml или другие файлы. Отчасти это может выглядеть, например, так:Какие рамки для анализа ответа службы REST?

<jfs:jauthRevokeTokenUrl 
     rdf:resource="https://localhost:9443/jts/jauth-revoke-token" /> 

    <jfs:jauthCheckAuthUrl 
     rdf:resource="https://localhost:9443/jts/jauth-check-auth" /> 

    <jfs:jauthProxyUrl 
     rdf:resource="https://localhost:9443/jts/jauth-proxy" /> 

    <jfs:jauthSigninUrl 
     rdf:resource="https://localhost:9443/jts/jauth-signin" /> 

Если теперь я хочу, чтобы получить значение rdf:resource из, например, узел jfs:jautSigningURL, что рамочное Java я могу использовать для этого? А что, если ответ не xml, а json? Какие рамки я могу использовать? Или мне нужно закодировать это самостоятельно?

ответ

2

Если вы хотите, чтобы избежать каких-либо больших рамок, вы можете посмотреть на сборку в инструментах Java для синтаксического анализа XML

Вот пример, предполагая, что у вас есть XML строку переменной

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 

DocumentBuilder db = documentBuilderFactory.newDocumentBuilder(); 
InputStream inputStream = new ByteArrayInputStream(XML.getBytes()); 
Document parsed = db.parse(inputStream); 

parsed.getDocumentElement().normalize(); 
Node tag = parsed.getElementsByTagName("jfs:jauthSigninUrl").item(0); 
String value = tag.getAttributes().getNamedItem("rdf:resource").getNodeValue(); 

Вы могли бы уточнить, что, в том числе определения пространства имен, нуль проверки и, возможно, упрощая его с выражением XPath, как и

XPath xpath = XPathFactory.newInstance().newXPath(); 
String value = xpath.evaluate("//jauthSigninUrl/@resource", parsed); 

Смотрите здесь Java XML XPATH

1

вы можете рассмотреть Apache Tika, он может помочь вам читать и анализировать множество форматов (включая, но не ограничиваясь XML, JSON) ..

здесь JSON можно рассматривать как обычный текстовый файл и анализируется с помощью правильно Json

Смежные вопросы