简体   繁体   中英

Java XML Read with WSIL file

at the moment I am trying to program a program which is able to render a link of an xml-file. I use Jsoup, my current code is the following

 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;
    }
}
}

I would like to read the following part from a XML file:

<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>

I want to return the following URL as String

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

How can I do that ?

Thank you

If there is only one tag wsil:description then you can use this code:

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

Escape mode should be changed, since you are not working on regular html, but xml.

If you have more than one tag with given name you can search for distinct neighbour element, and find required tag with respect to it:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM