首页 > 编程语言 >java简单解析wsdl文件

java简单解析wsdl文件

时间:2022-11-26 00:45:00浏览次数:51  
标签:Node java doc NodeList item org import wsdl 解析

 1 package com.example.demo.api.soap.client.userInterface.controller;
 2 
 3 
 4 import org.w3c.dom.Document;
 5 import org.w3c.dom.NamedNodeMap;
 6 import org.w3c.dom.Node;
 7 import org.w3c.dom.NodeList;
 8 import org.xml.sax.SAXException;
 9 
10 import javax.xml.parsers.DocumentBuilder;
11 import javax.xml.parsers.DocumentBuilderFactory;
12 import javax.xml.parsers.ParserConfigurationException;
13 import java.io.File;
14 import java.io.IOException;
15 
16 @SuppressWarnings("all")
17 public class UserInterfaceController {
18     public static void main(String[] args) throws IOException, SAXException, ParserConfigurationException {
19         File file = new File("c:\\user.wsdl");
20         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
21         factory.setNamespaceAware(true);
22         DocumentBuilder builder = factory.newDocumentBuilder();
23         Document doc = builder.parse(file);
24 
25         System.out.println("root:" + doc.getFirstChild().getNodeName());
26 
27         NodeList nodeList = doc.getElementsByTagNameNS("http://schemas.xmlsoap.org/wsdl/", "definitions");
28         Node root = nodeList.item(0);
29         NamedNodeMap map = root.getAttributes();
30         Node targetNs = map.getNamedItem("targetNamespace");
31         System.out.println("名称空间:" + targetNs.getNodeValue());
32 
33         String wsdlNsUri = "http://schemas.xmlsoap.org/wsdl/";
34 
35         NodeList bindingNodes = doc.getElementsByTagNameNS(wsdlNsUri, "binding");
36         Node bindingNode = bindingNodes.item(0);
37         String serviceName = bindingNode.getAttributes().getNamedItem("name").getNodeValue();
38         System.out.println("服务名:" + serviceName);
39 
40         NodeList serviceNodes = doc.getElementsByTagNameNS(wsdlNsUri, "service");
41         Node serviceNode = serviceNodes.item(0);
42         NodeList portNodes = serviceNode.getChildNodes();
43 
44         String bindingAddress = null;
45         Node addressNode = portNodes.item(1).getChildNodes().item(1);
46         bindingAddress = addressNode.getAttributes().getNamedItem("location").getNodeValue();
47         System.out.println("调用地址:" + bindingAddress);
48 
49         NodeList portTypeNodes = doc.getElementsByTagNameNS(wsdlNsUri, "portType");
50         Node portType = portTypeNodes.item(0);
51         NodeList opNodes = portType.getChildNodes();
52         for (int i = 0; i < opNodes.getLength(); i++) {
53             Node node = opNodes.item(i);
54             if (node.getNodeType() == Node.ELEMENT_NODE && node.getLocalName().equalsIgnoreCase("operation")) {
55                 String methodName = node.getAttributes().getNamedItem("name").getNodeValue();
56                 System.out.println("方法名:" + methodName);
57             }
58         }
59     }
60 
61 }

 

标签:Node,java,doc,NodeList,item,org,import,wsdl,解析
From: https://www.cnblogs.com/lwl80/p/16926772.html

相关文章

  • Java JDK11的下载与安装
    前言本篇文章是基于win10系统下载安装JDK11的教程。1.下载OracleJDK进入Oracle官网:https://www.oracle.com/java/technologies/downloads/#java11选择Java11→Winodws→......
  • Java8新特性
    Java8NashornJavaScriptJava8新特性Java8新特性Nashorn一个javascript引擎。NashornJavaScriptEngine在Java15已经不可用了。这已经在Java11标记为:@de......
  • 重点--微信公众号(事件回调&生成带参数二维码&扫码关注事件&消息模板推送)java版
     1.业务处理(全部业务)importcom.alibaba.fastjson.JSONObject;importorg.springframework.util.StringUtils;importorg.springframework.web.bind.annotation.*;impo......
  • 【Java】EasyCaptcha 封装验证码接口
     依赖坐标:<dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2......
  • JAXB 实现java对象与xml之间互相转换
    首先熟悉一下JAXB实现对象与xml互转时常用的一些注解使用:1.@XmlRootElement,用于类级别的注解,对应xml的跟元素。通过name属性定义这个根节点的名称。2.@XmlAccessorType,定......
  • 利用java-springboot和paddleocr进行ocr识别
    利用java-springboot和paddleocr进行ocr识别项目:https://github.com/jiangnanboy/java-springboot-paddleocrTableofContentsAboutGettingStartedResultContactR......
  • Java基本数据类型
    Java基本数据类型1.整型byte占1字节空间,取值范围-2^7~(2^7)-1,二进制首位为符号位,二进制表示0_000_0000~1_111_1111,1_000_0000记为-128。/***Aconstant......
  • 记一次java四舍五入错误结果的问题
    1.背景在进行除法计算时,结果不符合预期2.测试过程double精度问题,导致四舍五入结果误差BigDecimalb1=newBigDecimal(0.245);BigDecimalb2=new......
  • JAVA数据类型拓展
    数据类型拓展,基础面试题讲解整数//整数拓展进制二进制0b十进制八进制0十六进制0xinti=10;inti2=0b10;inti3=010;......
  • ACM 模式下的Java
    一、引入包相关importjava.util.*;二、基本输入相关涉及到输入需要提前创建一个键盘接收器Scannercin=newScaner(System.in);1、输入一个基本数据结构按照by......