Java XML для чтения с файлом WSIL - PullRequest
0 голосов
/ 24 мая 2018

В данный момент я пытаюсь запрограммировать программу, которая может отображать ссылку на xml-файл.Я использую Jsoup, мой текущий код следующий

 public static String XmlReader() {
    InputStream is = RestService.getInstance().getWsilFile();
    try {
        Document doc = Jsoup.parse(fis, null, "", Parser.xmlParser());
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}
}

Я хотел бы прочитать следующую часть из файла XML:

<wsil:service>
        <wsil:abstract>Read the full documentation on: https://host/sap/bc/mdrs/cdo?type=psm_isi_r&amp;objname=II_QUERY_PROJECT_IN&amp;saml2=disabled</wsil:abstract>
        <wsil:name>Query Projects</wsil:name>
        <wsil:description location="host/sap/bc/srt/wsdl/srvc_00163E5E1FED1EE897C188AB4A5723EF/wsdl11/allinone/ws_policy/document?sap-vhost=host&amp;saml2=disabled" referencedNamespace="http://schemas.xmlsoap.org/wsdl/"/>
    </wsil:service>

Я хочу вернуть следующий URL-адрес в виде строки

host/sap/bc/srt/wsdl/srvc_00163E5E1FED1EE897C188AB4A5723EF/wsdl11/allinone/ws_policy/document?sap-vhost=host&amp;saml2=disabled

Как я могу это сделать?

Спасибо

1 Ответ

0 голосов
/ 26 мая 2018

Если есть только один тег wsil:description, то вы можете использовать этот код:

doc.outputSettings().escapeMode(EscapeMode.xhtml);
String val = doc.select("wsil|description").attr("location"); 

Режим Escape должен быть изменен, поскольку вы работаете не с обычным html, а с xml.

Если у вас есть более одного тега с заданным именем, вы можете найти отдельный соседний элемент и найти требуемый тег относительно него:

String val = doc.select("wsil|name:contains(Query Projects)").first().parent().select("wsil|description").attr("location"); 
...