网络中有时候我们的参数是以xml类型传递的,有时会把xml拼成一个String字符串。

解析如下:

单一xml文档解析

xml文件

encoding="gb2312"?>

zh

java 解析

public static boolean strParseXML(String str){

DocumentBuilderFactory factory =

DocumentBuilderFactory.newInstance();

DocumentBuilder builder;

String ifResult=null;

String ifWarning=null;

try {

builder = factory.newDocumentBuilder();

Document doc = builder.parse( new

ByteArrayInputStream(str.getBytes()));

if(doc.getElementsByTagName_r("IfResult").item(0).getFirstChild()!=null){

ifResult=doc.getElementsByTagName_r("IfResult").item(0).getFirstChild().getNodeValue();

if(ifResult.equals("0")){

……

return true;

}else{

if(doc.getElementsByTagName_r("IfWarning").item(0).getFirstChild()!=null){

ifWarning=doc.getElementsByTagName_r("IfWarning").item(0).getFirstChild().getNodeValue();

}

if(doc.getElementsByTagName_r("IfError").item(0).getFirstChild()!=null){

ifError=doc.getElementsByTagName_r("IfError").item(0).getFirstChild().getNodeValue();

}

}

}

}

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return false;

}

多重参数解析,以对象形式放到List里

public static List

xmlInfoParaseModel(String strInfo){

List list=new

ArrayList();

DocumentBuilderFactory factory =

DocumentBuilderFactory.newInstance();

DocumentBuilder builder;

try{

builder = factory.newDocumentBuilder();

Document doc = builder.parse( new

ByteArrayInputStream(strInfo.getBytes()));

int

nodeLength=doc.getElementsByTagName_r("message").getLength();//获取所有节点个数

for(int i=0;i

ExteriorImages images=new ExteriorImages();

images.setR_code(doc.getElementsByTagName_r("code").item(i).getFirstChild().getNodeValue());

images.setBar_state(doc.getElementsByTagName_r("state").item(i).getFirstChild().getNodeValue());

images.setApp_user(doc.getElementsByTagName_r("user").item(i).getFirstChild().getNodeValue());

list.add(images);

}

return list;

}

catch(ParserConfigurationException e) {

e.printStackTrace();

} catch(SAXException e) {

e.printStackTrace();

} catch(IOException e) {

e.printStackTrace();

}

return null;

}

**********************************************************************************************************************************

import java.io.IOException;

import java.io.StringReader;

import java.util.List;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.JDOMException;

import org.jdom.input.SAXBuilder;

import org.xml.sax.InputSource;

public class DuXMLDoc {

public List xmlElements(String xmlDoc) {

//创建一个新的字符串

StringReader read = new StringReader(xmlDoc);

//创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入

InputSource source = new InputSource(read);

//创建一个新的SAXBuilder

SAXBuilder sb = new SAXBuilder();

try {

//通过输入源构造一个Document

Document doc = sb.build(source);

//取的根元素

Element root = doc.getRootElement();

System.out.println("tasktypename:"+root.getAttributeValue("tasktypename"));

System.out.println("perfrenceNum:"+root.getAttributeValue("perfrenceNum"));

System.out.println(root.getName());//输出根元素的名称(测试)

//得到根元素所有子元素的集合

List jiedian = root.getChildren();

Element et = null;

for(int i=0;i

et = (Element) jiedian.get(i);//循环依次得到子元素

if(et.getAttributeValue("inputindex").equals("1")){

et.setAttribute("name","1");

}

et.setAttribute("age","15");

System.out.println("name:"+et.getAttributeValue("name"));

System.out.println("value:"+et.getAttributeValue("value"));

System.out.println("inputindex:"+et.getAttributeValue("inputindex"));

System.out.println("perfrence:"+et.getAttributeValue("perfrence"));

System.out.println("age:"+et.getAttributeValue("age"));

}

//

// et = (Element) jiedian.get(0);

// List zjiedian = et.getChildren();

// for(int j=0;j

// Element xet = (Element) zjiedian.get(j);

// System.out.println(xet.getName());

// }

} catch (JDOMException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

} catch (IOException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}

return null;

}

public static void main(String[] args){

DuXMLDoc doc = new DuXMLDoc();

String xml = "<?xml version=/"1.0/"

encoding=/"UTF-8/"?>"+

"

perfrenceNum=/"2/">"+

"

perfrence=/"2/"/>"+

"

perfrence=/"2/"/>"+

"

"

;

System.out.println(xml);

doc.xmlElements(xml);

}

}

或者试试这个

import javax.xml.parsers.*;

import org.w3c.dom.*;

import java.io.*;

import org.xml.sax.*;

public class DomTest {

public static void main(String args[]) { //建立一个解析器工厂

try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //从解析器工厂生产一个解析器对象

DocumentBuilder builder = factory.newDocumentBuilder(); //解析器对具体的xml文档进行解析,得到文档对象

Document doc = builder.parse("candidate2.xml"); //根据元素的标记名称得到元素列表

NodeList nl = doc.getElementsByTagName_r("PERSON");

for (int i = 0; i < nl.getLength(); i++) {

Element node = (Element) nl.item(i);

System.out.print("NAME: ");

System.out.println(node.getElementsByTagName_r("NAME").item(0).getFirstChild().getNodeValue());

System.out.print("ADDRESS: ");

System.out.println(node.getElementsByTagName_r("ADDRESS").item(0).getFirstChild().getNodeValue());

System.out.print("TEL: ");

System.out.println(node.getElementsByTagName_r("TEL").item(0).getFirstChild().getNodeValue());

System.out.print("FAX: ");

System.out.println(node.getElementsByTagName_r("FAX").item(0).getFirstChild().getNodeValue());

System.out.print("EMAIL: ");

System.out.println(node.getElementsByTagName_r("EMAIL").item(0). getFirstChild().getNodeValue());

System.out.println(); } }

catch (DOMException ex) { }

catch (IOException ex) { }

catch (SAXException ex) { }

catch (ParserConfigurationException ex) { }

catch (FactoryConfigurationError ex) { } } } 用工厂类比较好

java xml类型_java 解析String类型的xml相关推荐

  1. java把string转int类型_java把String类型转换为int类型的方法

    java把String类型转换为int类型的方法 发布时间:2020-08-20 14:32:03 来源:亿速云 阅读:73 作者:小新 这篇文章将为大家详细讲解有关java把String类型转换为i ...

  2. java string类型_java中String类型

    String类型是字符串类型..字符串一旦创建不可以在改变."abc"字符串对象一旦创建,不可以再改成"abcd" 提升字符串的访问效率:在程序中使用了&quo ...

  3. Java DOM4J解析String类型XML,Document对象转String

    解析String类型XML数据 Document doc = DocumentHelper.parseText(String text); ​​​​​​​ Document对象转String Stri ...

  4. java double 转string_double转string java中double类型如何转换为String类型

    double转string java中double类型如何转换为String类型 在我们做的项目中,有一个字符串的生成,我们需要double去拼接,结果发现了,拼接后的字符串,那个double值用科学 ...

  5. 当要将其他类型转成String类型时候 看String的方法

    当要将其他类型转成String类型时候 看String的方法进行转换 转载于:https://www.cnblogs.com/classmethond/p/10100877.html

  6. vb 使用Array.ConvertAll将object类型数组转为string类型数组

    vb 使用Array.ConvertAll将object类型数组转为string类型数组有两种方法 1.    方法1 1 Dim int_array() As Object = {1, 2, 3} ...

  7. MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录

    MyBatis映射文件如何给数据库的int类型字段"插入"string类型记录. 数据库中对应字段名称和类型如下: 给数据库的int类型字段"插入"string ...

  8. XML系列之--解析电文格式的XML(二)

    上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...

  9. java 不能实例化类型_java不能实例化类型

    8.String类对象的两种实例化方式_计算机软件及应用_IT/计算机_专业资料.Java8面向对象编程视频课程 1. 课程名称:String 对象的两种实例化方式 2.知识点 2.1....... ...

最新文章

  1. 3、HTML网页基本概念
  2. Pytorch学习-tensorboard的使用
  3. 游戏《蔚蓝山》教我的编程道理
  4. 英特尔、联发科、展讯等开始支持开源的物联网轻量化操作系统AliOS Lite
  5. Django从理论到实战(part23)--模板继承
  6. oracle虚拟机字符集,更改虚拟机上的oracle字符集
  7. c语言 %-20s,一次 Rust 和C语言的混搭
  8. 父亲节,来认识一下这几位“爸爸”
  9. mysql数据库创建带-的数据库名
  10. Linux Malloc分析-从用户空间到内核空间【转】
  11. java 微信小程序消息模板
  12. FFMPEG录屏(12)---- DXGI 捕获桌面
  13. 第1章 【蓦然回首】开篇引导【少年,奋斗吧】
  14. Easypoi模版形式导出excel导出图片
  15. html 字体图标库,阿里字体图标库介绍及图标字体的使用方法
  16. PDF Expert快捷键
  17. npm run tsc报错 (声明文件报错||tsc.js报错)
  18. lol手游日服服务器未响应,LOL手游进不去怎么回事?日服登陆失败解决办法[多图]...
  19. LMS算法实现系统识别
  20. 【大数据计算】(四) Spark的安装和基础编程

热门文章

  1. vue-scroller的使用
  2. oc21--super
  3. JS特效之很牛叉的轮播图
  4. 团队作业9——展示博客(Beta版本)
  5. Delphi 与 DirectX 之 DelphiX(49): TDIB.DoGrayScale;
  6. [转] Official Microsoft Team Blogs / Microsoft Blogs
  7. 「极点日历」小程序插件
  8. zw版【转发·台湾nvp系列Delphi例程】HALCON HighpassImage
  9. 浅谈我对 jQuery 的了解
  10. MySql卸载之后重新安装服务无法启动