利用kxml2解析和构造xml
来源:互联网 发布:淘宝客推广大师好用吗 编辑:程序博客网 时间:2024/03/29 15:00
在线文档路径
构造xml
xml的内容
<head xmlns="http://testxmlns"> <UsernameToken> <Username>user123</Username> <Password Type="http://testtype"> pass123 </Password> </UsernameToken></head>
利用对象Element构造xml
将xml解析为树状结构来构造
Element[] header = new Element[1];//创建新的元素节点,参数1:命名空间,参数2:节点命header[0] = new Element().createElement(null, "head");//为节点设置属性,参数1:命名空间,参数2:属性名,参数3:属性值header[0].setAttribute(null,"xmlns", "http://testxmlns");Element UsernameToken = new Element().createElement(null, "UsernameToken"); Element userName = new Element().createElement(null, "Username");//添加子节点,参数1:节点类型,参数2:节点对象//Node.TEXT:文本节点,Node.ELEMENT:元素节点userName.addChild(Node.TEXT, "user123");Element passWord = new Element().createElement(null, "Password"); passWord.addChild(Node.TEXT, "pass123");passWord.setAttribute(null,"Type", "http://testtype");UsernameToken.addChild(Node.ELEMENT, userName);UsernameToken.addChild(Node.ELEMENT, passWord);header[0].addChild(Node.ELEMENT, UsernameToken);//
利用KXmlSerializer构造xml的字符串
KXmlSerializer序列化按xml的顺序构造xml
//实例化KXmlSerializerKXmlSerializer serializer = new KXmlSerializer();//KXmlSerializer继承类XmlSerializer,所以也可以实例化XmlSerializer来构造xml//XmlPullParserFactory factory = XmlPullParserFactory.newInstance(System.getProperty(XmlPullParserFactory.PROPERTY_NAME), null);//XmlSerializer serializer = factory.newSerializer();StringWriter writer = new StringWriter();//必须要有输出serializer.setOutput(writer);//设置输出自动按xml格式缩进 ,false不缩进serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);//生成声明行<?xml version="1.0" encoding="utf-8"?>//serializer.startDocument("utf-8", null);//设置节点名serializer.startTag("", "head");//设置节点属性serializer.attribute("", "xmlns", "http://testxmlns");serializer.startTag("", "UsernameToken");serializer.startTag("", "Username");//设置节点值serializer.text("user123");serializer.endTag("","Username");serializer.startTag("", "Password");serializer.attribute("", "Type","http://testtype");serializer.text("pass123");serializer.endTag("","Password");serializer.endTag("","UsernameToken");serializer.endTag("","Security");//对应startDocument//serializer.endDocument();System.out.println(writer.toString());
将Element格式的xml转化为String
KXmlSerializer serializer = new KXmlSerializer();StringWriter writer = new StringWriter();serializer.setOutput(writer);//将xml数据写入对象header[0].write(serializer);//设置自动缩进serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);System.out.println(writer.toString());
从文件或者网络中读取xml并解析
从网络获取xml并存入文件中
//获取网络输入流InputStream in=new URL("http://www.baidu.com").openConnection().getInputStream();//下面从文件获取输入流//File f1= new File("1.xml");//FileInputStream in = new FileInputStream(f1);File f2= new File("2.xml");//定义输出位置FileOutputStream fo = new FileOutputStream(f2);//每次读取的文件大小byte[] bytes = new byte[1024];//定义文件指针int byteread;while ((byteread = in.read(bytes)) != -1) { fo.write(bytes, 0, byteread); } in.close();fo.close();
解析字节流xml
注:parse.getAttributeName必须在parse.nextText()之前
InputStream in=new URL("http://www.baidu.com").openConnection().getInputStream();KXmlParser parse=new KXmlParser();parse.setInput(in,"utf-8");boolean keepParsing=true;while(keepParsing){ int type = parse.next(); switch (type) { case KXmlParser.START_DOCUMENT: break; case KXmlParser.START_TAG: if("Username".endsWith(parse.getName())){ System.out.println("userNamestr======="+parse.nextText()); }else if("Password".endsWith(parse.getName())){ //parse.getAttributeName必须在parse.nextText()之前 //参数为索引几个属性 System.out.println("passWordstr_type======="+parse.getAttributeName(0)+"====="+parse.getAttributeValue(0)); System.out.println("passWordstr======"+parse.nextText().trim()); } break; case KXmlParser.END_TAG: break; case KXmlParser.TEXT: break; case KXmlParser.END_DOCUMENT: //判断是否结束 keepParsing = false; break; } }
0 0
- 利用kxml2解析和构造xml
- Kxml2解析xml例子
- KXML2解析XML文件
- 利用kxml2包生成xml文件
- J2ME使用Kxml2包解析XML
- 在 j2me 使用kxml2解析xml
- J2ME 中 KXML2 解析器解析 xml 文件源代码
- KXML2解析xml出现的问题及解决办法
- kxml2
- 利用dom4j创建XML和解析XML
- 利用dom4j创建XML和解析XML
- Java解析和构造XML数据
- android-利用xml解析和生成数据
- 利用jsoup解析网页和xml文件
- 利用JAXP和DOM4J解析XML
- 利用DOM和SAX解析XML文档
- 利用Pull生成和解析xml文件
- 利用DOM解析和创建xml文件
- struts2服务器端校验
- Solr 6.3.0 入门教程(一) 安装
- Tomcat中的Session小结
- SpringMvc教程(十一)--如何实现全局的异常处理
- bzoj 4573: [Zjoi2016]大森林 lct
- 利用kxml2解析和构造xml
- python错误:TypeError: 'module' object is not callable
- Java web从16年毕业至今的开发感受和收益(1)
- CUIT 2016 新生训练题第一周 C - Bull Math
- API Guides (Android 7.1.1) Manifest元素详解 activity
- synchronized修饰变量
- linux启动自动挂载硬盘
- 第十四周项目2-二叉树排序树中查找的路径
- 求二叉树的最小深度