java xml类型_java 解析String类型的xml
网络中有时候我们的参数是以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相关推荐
- java把string转int类型_java把String类型转换为int类型的方法
java把String类型转换为int类型的方法 发布时间:2020-08-20 14:32:03 来源:亿速云 阅读:73 作者:小新 这篇文章将为大家详细讲解有关java把String类型转换为i ...
- java string类型_java中String类型
String类型是字符串类型..字符串一旦创建不可以在改变."abc"字符串对象一旦创建,不可以再改成"abcd" 提升字符串的访问效率:在程序中使用了&quo ...
- Java DOM4J解析String类型XML,Document对象转String
解析String类型XML数据 Document doc = DocumentHelper.parseText(String text); Document对象转String Stri ...
- java double 转string_double转string java中double类型如何转换为String类型
double转string java中double类型如何转换为String类型 在我们做的项目中,有一个字符串的生成,我们需要double去拼接,结果发现了,拼接后的字符串,那个double值用科学 ...
- 当要将其他类型转成String类型时候 看String的方法
当要将其他类型转成String类型时候 看String的方法进行转换 转载于:https://www.cnblogs.com/classmethond/p/10100877.html
- vb 使用Array.ConvertAll将object类型数组转为string类型数组
vb 使用Array.ConvertAll将object类型数组转为string类型数组有两种方法 1. 方法1 1 Dim int_array() As Object = {1, 2, 3} ...
- MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录
MyBatis映射文件如何给数据库的int类型字段"插入"string类型记录. 数据库中对应字段名称和类型如下: 给数据库的int类型字段"插入"string ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- java 不能实例化类型_java不能实例化类型
8.String类对象的两种实例化方式_计算机软件及应用_IT/计算机_专业资料.Java8面向对象编程视频课程 1. 课程名称:String 对象的两种实例化方式 2.知识点 2.1....... ...
最新文章
- 3、HTML网页基本概念
- Pytorch学习-tensorboard的使用
- 游戏《蔚蓝山》教我的编程道理
- 英特尔、联发科、展讯等开始支持开源的物联网轻量化操作系统AliOS Lite
- Django从理论到实战(part23)--模板继承
- oracle虚拟机字符集,更改虚拟机上的oracle字符集
- c语言 %-20s,一次 Rust 和C语言的混搭
- 父亲节,来认识一下这几位“爸爸”
- mysql数据库创建带-的数据库名
- Linux Malloc分析-从用户空间到内核空间【转】
- java 微信小程序消息模板
- FFMPEG录屏(12)---- DXGI 捕获桌面
- 第1章 【蓦然回首】开篇引导【少年,奋斗吧】
- Easypoi模版形式导出excel导出图片
- html 字体图标库,阿里字体图标库介绍及图标字体的使用方法
- PDF Expert快捷键
- npm run tsc报错 (声明文件报错||tsc.js报错)
- lol手游日服服务器未响应,LOL手游进不去怎么回事?日服登陆失败解决办法[多图]...
- LMS算法实现系统识别
- 【大数据计算】(四) Spark的安装和基础编程
热门文章
- vue-scroller的使用
- oc21--super
- JS特效之很牛叉的轮播图
- 团队作业9——展示博客(Beta版本)
- Delphi 与 DirectX 之 DelphiX(49): TDIB.DoGrayScale;
- [转] Official Microsoft Team Blogs / Microsoft Blogs
- 「极点日历」小程序插件
- zw版【转发·台湾nvp系列Delphi例程】HALCON HighpassImage
- 浅谈我对 jQuery 的了解
- MySql卸载之后重新安装服务无法启动