使用WSIL文件读取Java XML

时间:2018-05-24 08:11:43

标签: java xml jsoup

目前我正在尝试编写一个能够呈现xml文件链接的程序。我使用Jsoup,我目前的代码是以下

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>


<body ng-app="app" ng-controller="ctrl as vm">
  <select ng-model="vm.fooModel" ng-options="item.id as item.name for item in vm.fooOptions">
  </select>

  Select: {{vm.fooModel}}
</body>

我想从XML文件中读取以下部分:

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

我想将以下网址作为字符串

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

我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:0)

如果只有一个标记wsil:description,那么您可以使用此代码:

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

应该更改转义模式,因为你没有使用常规的html,而是使用xml。

如果您有多个具有给定名称的标记,则可以搜索不同的邻居元素,并找到与之相关的必需标记:

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