如何解析WSDL文件以提取特定节点的内容

时间:2013-02-27 01:18:17

标签: java xml parsing wsdl wsdl2java

以下是我的wsdl文件的一部分:

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
- <s:element name="BinaryConversion">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="Binary" type="s:string" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="BinaryConversionResponse">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="BinaryConversionResult" type="s:string" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="Qos">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="Availabilty_10" type="s:int" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="QosResponse">
  <s:complexType /> 
  </s:element>
- <s:element name="GetQosParameters">
  <s:complexType /> 
  </s:element>
- <s:element name="GetQosParametersResponse">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="GetQosParametersResult" type="tns:QoSParameters" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:complexType name="QoSParameters">
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="Availability" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Accuracy" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Accessibility" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Latency" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="Reliability" type="s:string" /> 
  </s:sequence>
  </s:complexType>
  </s:schema>
  </wsdl:types>

现在我要提取名称可用性,准确性,延迟等。我该怎么做。 我使用Document Builder进行解析,但我只能提取wsdl:operations而不是wsdl:types

1 个答案:

答案 0 :(得分:2)

这是一个很好的Java / XML教程(很多)之一:

向下滚动到他谈论XPath的部分。这是获取子节点(例如“QoSParameters”)及其中的所有内容所需的语法(例如“可用性”,“准确性”等)。