例如:生成以下的文档:
<?xml version="1.0"?>
<people>
<person>
<name>zhangsan</name>
<age>30</age>
<sex>female</sex>
</person>
</people>
在DOM生成XML内容中,所有的元素都应该由Document产生,之后再分别建立各自的关系。
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class DOMDemo05 {
public static void main(String[] args) throws Exception {
// 1、建立DocumentBuilderFactory
DocumentBuilderFactory factory = null;
factory = DocumentBuilderFactory.newInstance();
// 2、建立DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
// 3、建力Document,将整个XML文档形成DOM树
Document doc = builder.newDocument() ;
Element peo = doc.createElement("people") ;
Element per = doc.createElement("person") ;
Element name = doc.createElement("name") ;
Element age = doc.createElement("age") ;
Element sex = doc.createElement("sex") ;
// 设置节点中的内容
name.appendChild(doc.createTextNode("zhangsan")) ;
age.appendChild(doc.createTextNode("30")) ;
sex.appendChild(doc.createTextNode("female")) ;
// 设置关系
per.appendChild(name) ;
per.appendChild(age) ;
per.appendChild(sex) ;
peo.appendChild(per) ;
doc.appendChild(peo) ;
NodeList nl = doc.getElementsByTagName("person");
Element p = (Element) nl.item(0); // 定位节点到person之中
System.out.println(p.getElementsByTagName("name").item(0)
.getFirstChild().getNodeValue());
System.out.println(p.getElementsByTagName("age").item(0)
.getFirstChild().getNodeValue());
System.out.println(p.getElementsByTagName("sex").item(0)
.getFirstChild().getNodeValue());
}
}
以上的文档都还只是在内存中形成的,可以将其通过IO操作输出到文件之中。
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class DOMDemo06 {
public static void main(String[] args) throws Exception {
// 1、建立DocumentBuilderFactory
DocumentBuilderFactory factory = null;
factory = DocumentBuilderFactory.newInstance();
// 2、建立DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
// 3、建力Document,将整个XML文档形成DOM树
Document doc = builder.newDocument() ;
Element peo = doc.createElement("people") ;
Element per = doc.createElement("person") ;
Element name = doc.createElement("name") ;
Element age = doc.createElement("age") ;
Element sex = doc.createElement("sex") ;
// 设置节点中的内容
name.appendChild(doc.createTextNode("张三")) ;
age.appendChild(doc.createTextNode("30")) ;
sex.appendChild(doc.createTextNode("female")) ;
// 设置关系
per.appendChild(name) ;
per.appendChild(age) ;
per.appendChild(sex) ;
peo.appendChild(per) ;
doc.appendChild(peo) ;
TransformerFactory tf = TransformerFactory.newInstance() ;
Transformer f = tf.newTransformer() ;
// 设置编码
f.setOutputProperty(OutputKeys.ENCODING, "GBK") ;
// 通过DOMSource输出内容
DOMSource source = new DOMSource(doc) ;
StreamResult stream = new StreamResult("d:\\abc.xml") ;
f.transform(source, stream) ;
}
}
3.2.2、SAX解析
SAX:简单API XML解析。
使用顺序的读取方式,部分读取内容。
在使用SAX之前,首先必须建立好SAX解析器,一个类只要继承了DefaultHandler类,那么此类就可以成为SAX解析器。
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MySAX extends DefaultHandler {
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.print(new String(ch,start,length)) ;
}
public void endDocument() throws SAXException {
System.out.println("===== 文档结束 =====");
}
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.print("</"+qName+">") ;
}
public void startDocument() throws SAXException {
System.out.println("===== 文档开始 =====");
}
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
System.out.print("<"+qName+">") ;
}
}
下一步开始具体应用此解析器。
import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class SAXDemo {
public static void main(String[] args) throws Exception {
SAXParserFactory factory = null ;
factory = SAXParserFactory.newInstance() ;
SAXParser par = factory.newSAXParser() ;
par.parse(new File("d:\\demo.xml"), new MySAX()) ;
}
}
SAX解析操作的时候本身只能提供顺序的读取,但是不具备内容的修改功能。
3.2.3、JDOM
SAX和DOM都属于标准的操作接口,其本身符合W3C标准,但是因为DOM和SAX两者各有优点和缺点,所以后来开发者开发出了一套新的API —— JDOM,结合DOM的可修改性以及SAX解析的性能高的特点,形成了新的组件。
Jdom本身是一个单独开发包,jdom也需要一个jar包。
使用Jdom可以方便的生成XML文件。
<?xml version="1.0"?>
<people>
<person>
<name>zhangsan</name>
<age>30</age>
<sex>female</sex>
</person>
</people>
使用jdom生成以上的内容。
import java.io.FileOutputStream;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
public class JDOMDemo01 {
public static void main(String[] args) throws Exception {
Element peo = new Element("people");
Element per = new Element("person");
Element name = new Element("name");
Element age = new Element("age");
Element sex = new Element("sex");
name.setText("zhangsan");
age.setText("30");
sex.setText("男");
// 设置关系
per.addContent(name);
per.addContent(age);
per.addContent(sex);
peo.addContent(per);
Document doc = new Document(peo);
// jdom中非常方便的就可以输出内容
XMLOutputter out = new XMLOutputter();
out.setEncoding("GBK");
out.output(doc, new FileOutputStream("d:\\d.xml"));
}
}
同样,JDOM中可以使用SAX的解析方式解析XML文件。
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class JDOMDemo02 {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder() ;
Document doc = builder.build("d:\\d.xml") ;
Element peo = doc.getRootElement() ; // 得到根节点
System.out.println(peo.getChild("person").getChildText("name")) ;
System.out.println(peo.getChild("person").getChildText("age")) ;
System.out.println(peo.getChild("person").getChildText("sex")) ;
}
}
如果现在在一个people元素中有多个person节点,则此时就可以发现Jdom所具备的优点了。
<?xml version="1.0" encoding="GBK"?>
<people>
<person>
<name>zhangsan</name>
<age>30</age>
<sex>男</sex>
</person>
<person>
<name>lisi</name>
<age>31</age>
<sex>女</sex>
</person>
</people>
解析如下:
import java.util.Iterator;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class JDOMDemo03 {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder() ;
Document doc = builder.build("d:\\d.xml") ;
Element peo = doc.getRootElement() ; // 得到根节点
Iterator iter = peo.getChildren().iterator() ;
while(iter.hasNext()){
Element ele = (Element)iter.next() ;
System.out.print(ele.getChildText("name")+";") ;
System.out.print(ele.getChildText("age")+";") ;
System.out.print(ele.getChildText("sex")+"\n") ;
System.out.print("=================================") ;
}
}
}
3.3、HTML中使用DOM解析
有如下的XML文件:
<?xml version="1.0" encoding="GBK"?>
<allplus>
<plus>
<id>1</id>
<title>北京</title>
</plus>
</allplus>
使用AJAX读取内容
<html>
<head>
<title>dom01.htm</title>
<script language="javaScript">
var xmlHttp ;
function createXmlHttp(){
if(window.XmlHttpRequest){
xmlHttp = new XmlHttpRequest() ;
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") ;
}
}
function getContent(){
createXmlHttp() ;
xmlHttp.onreadystatechange = getContentCallback ;
xmlHttp.open("POST","data.xml") ;
xmlHttp.send(null) ;
}
function getContentCallback(){
if(xmlHttp.readyState==4){ // 数据已经全部读取完毕
// 从读取的内容中解析出xml文件
var root = xmlHttp.responseXML.getElementsByTagName("allplus")[0].childNodes ;
// 把内容读取出来
for(var i=0;i<root.length;i++){
var plus = root[i] ;
alert(plus.getElementsByTagName("id")[0].firstChild.nodeValue + " --> " +
plus.getElementsByTagName("title")[0].firstChild.nodeValue) ;
}
}
}
</script>
</head>
<body>
<input type="button" value="按我" onClick="getContent()">
</body>
</html>
直接通过JavaScript生成一个下拉列表框。
<html>
<head>
<title>dom01.htm</title>
<script language="javaScript">
function fun(){
var select = document.getElementById("plus") ;
select.length = 1 ; // 每次只能选择一个内容
select.options[0].selected = true ; // 第一个被默认选中
var id = 1 ;
var title = "北京" ;
var option = document.createElement("option") ;
option.setAttribute("value",id) ;
option.appendChild(document.createTextNode(title)) ;
select.appendChild(option) ;
}
</script>
</head>
<body>
<form>
<select name="plus" id="plus">
<option value="0">没有地区</option>
</select>
<input type="button" value="按我" onClick="fun()">
</select>
</body>
</html>
以上代码发现,HTML中也是可以使用DOM解析操作的。
4、总结
1、 DOM与SAX解析各自的优点及缺点
2、 灵活使用Jdom解析输出
3、 可以直接使用AJAX读取XML文件格式的内容
4、 HTML中的所有元素都可以使用DOM解析操作
5、预习任务
1、 Hibernate入门
6、作业
使用Struts + AJAX + Jdom + XML生成一个级联菜单,依然使用地区-子地区操作
• Struts中使用DAO可以取出全部的子地区,根据地区编号取
• 在Action中使用内存输出流,将所有的子地区生成一个XML风格的文件
|- 内存输入、输出流:ByteArrayOutputStream、ByteArrayInputStream
• 前台的HTML页面中可以列出全部的地区,之后地区改变,可以通过AJAX取出全部的子地区
• 子地区使用JavaScript进行DOM解析,从返回的XML文件里取出全部的内容
• 注意:所有生成的XML文件都不能以文件的形式出现。
<?xml version="1.0"?>
<people>
<person>
<name>zhangsan</name>
<age>30</age>
<sex>female</sex>
</person>
</people>
在DOM生成XML内容中,所有的元素都应该由Document产生,之后再分别建立各自的关系。
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class DOMDemo05 {
public static void main(String[] args) throws Exception {
// 1、建立DocumentBuilderFactory
DocumentBuilderFactory factory = null;
factory = DocumentBuilderFactory.newInstance();
// 2、建立DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
// 3、建力Document,将整个XML文档形成DOM树
Document doc = builder.newDocument() ;
Element peo = doc.createElement("people") ;
Element per = doc.createElement("person") ;
Element name = doc.createElement("name") ;
Element age = doc.createElement("age") ;
Element sex = doc.createElement("sex") ;
// 设置节点中的内容
name.appendChild(doc.createTextNode("zhangsan")) ;
age.appendChild(doc.createTextNode("30")) ;
sex.appendChild(doc.createTextNode("female")) ;
// 设置关系
per.appendChild(name) ;
per.appendChild(age) ;
per.appendChild(sex) ;
peo.appendChild(per) ;
doc.appendChild(peo) ;
NodeList nl = doc.getElementsByTagName("person");
Element p = (Element) nl.item(0); // 定位节点到person之中
System.out.println(p.getElementsByTagName("name").item(0)
.getFirstChild().getNodeValue());
System.out.println(p.getElementsByTagName("age").item(0)
.getFirstChild().getNodeValue());
System.out.println(p.getElementsByTagName("sex").item(0)
.getFirstChild().getNodeValue());
}
}
以上的文档都还只是在内存中形成的,可以将其通过IO操作输出到文件之中。
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class DOMDemo06 {
public static void main(String[] args) throws Exception {
// 1、建立DocumentBuilderFactory
DocumentBuilderFactory factory = null;
factory = DocumentBuilderFactory.newInstance();
// 2、建立DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
// 3、建力Document,将整个XML文档形成DOM树
Document doc = builder.newDocument() ;
Element peo = doc.createElement("people") ;
Element per = doc.createElement("person") ;
Element name = doc.createElement("name") ;
Element age = doc.createElement("age") ;
Element sex = doc.createElement("sex") ;
// 设置节点中的内容
name.appendChild(doc.createTextNode("张三")) ;
age.appendChild(doc.createTextNode("30")) ;
sex.appendChild(doc.createTextNode("female")) ;
// 设置关系
per.appendChild(name) ;
per.appendChild(age) ;
per.appendChild(sex) ;
peo.appendChild(per) ;
doc.appendChild(peo) ;
TransformerFactory tf = TransformerFactory.newInstance() ;
Transformer f = tf.newTransformer() ;
// 设置编码
f.setOutputProperty(OutputKeys.ENCODING, "GBK") ;
// 通过DOMSource输出内容
DOMSource source = new DOMSource(doc) ;
StreamResult stream = new StreamResult("d:\\abc.xml") ;
f.transform(source, stream) ;
}
}
3.2.2、SAX解析
SAX:简单API XML解析。
使用顺序的读取方式,部分读取内容。
在使用SAX之前,首先必须建立好SAX解析器,一个类只要继承了DefaultHandler类,那么此类就可以成为SAX解析器。
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MySAX extends DefaultHandler {
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.print(new String(ch,start,length)) ;
}
public void endDocument() throws SAXException {
System.out.println("===== 文档结束 =====");
}
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.print("</"+qName+">") ;
}
public void startDocument() throws SAXException {
System.out.println("===== 文档开始 =====");
}
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
System.out.print("<"+qName+">") ;
}
}
下一步开始具体应用此解析器。
import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class SAXDemo {
public static void main(String[] args) throws Exception {
SAXParserFactory factory = null ;
factory = SAXParserFactory.newInstance() ;
SAXParser par = factory.newSAXParser() ;
par.parse(new File("d:\\demo.xml"), new MySAX()) ;
}
}
SAX解析操作的时候本身只能提供顺序的读取,但是不具备内容的修改功能。
3.2.3、JDOM
SAX和DOM都属于标准的操作接口,其本身符合W3C标准,但是因为DOM和SAX两者各有优点和缺点,所以后来开发者开发出了一套新的API —— JDOM,结合DOM的可修改性以及SAX解析的性能高的特点,形成了新的组件。
Jdom本身是一个单独开发包,jdom也需要一个jar包。
使用Jdom可以方便的生成XML文件。
<?xml version="1.0"?>
<people>
<person>
<name>zhangsan</name>
<age>30</age>
<sex>female</sex>
</person>
</people>
使用jdom生成以上的内容。
import java.io.FileOutputStream;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
public class JDOMDemo01 {
public static void main(String[] args) throws Exception {
Element peo = new Element("people");
Element per = new Element("person");
Element name = new Element("name");
Element age = new Element("age");
Element sex = new Element("sex");
name.setText("zhangsan");
age.setText("30");
sex.setText("男");
// 设置关系
per.addContent(name);
per.addContent(age);
per.addContent(sex);
peo.addContent(per);
Document doc = new Document(peo);
// jdom中非常方便的就可以输出内容
XMLOutputter out = new XMLOutputter();
out.setEncoding("GBK");
out.output(doc, new FileOutputStream("d:\\d.xml"));
}
}
同样,JDOM中可以使用SAX的解析方式解析XML文件。
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class JDOMDemo02 {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder() ;
Document doc = builder.build("d:\\d.xml") ;
Element peo = doc.getRootElement() ; // 得到根节点
System.out.println(peo.getChild("person").getChildText("name")) ;
System.out.println(peo.getChild("person").getChildText("age")) ;
System.out.println(peo.getChild("person").getChildText("sex")) ;
}
}
如果现在在一个people元素中有多个person节点,则此时就可以发现Jdom所具备的优点了。
<?xml version="1.0" encoding="GBK"?>
<people>
<person>
<name>zhangsan</name>
<age>30</age>
<sex>男</sex>
</person>
<person>
<name>lisi</name>
<age>31</age>
<sex>女</sex>
</person>
</people>
解析如下:
import java.util.Iterator;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class JDOMDemo03 {
public static void main(String[] args) throws Exception {
SAXBuilder builder = new SAXBuilder() ;
Document doc = builder.build("d:\\d.xml") ;
Element peo = doc.getRootElement() ; // 得到根节点
Iterator iter = peo.getChildren().iterator() ;
while(iter.hasNext()){
Element ele = (Element)iter.next() ;
System.out.print(ele.getChildText("name")+";") ;
System.out.print(ele.getChildText("age")+";") ;
System.out.print(ele.getChildText("sex")+"\n") ;
System.out.print("=================================") ;
}
}
}
3.3、HTML中使用DOM解析
有如下的XML文件:
<?xml version="1.0" encoding="GBK"?>
<allplus>
<plus>
<id>1</id>
<title>北京</title>
</plus>
</allplus>
使用AJAX读取内容
<html>
<head>
<title>dom01.htm</title>
<script language="javaScript">
var xmlHttp ;
function createXmlHttp(){
if(window.XmlHttpRequest){
xmlHttp = new XmlHttpRequest() ;
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") ;
}
}
function getContent(){
createXmlHttp() ;
xmlHttp.onreadystatechange = getContentCallback ;
xmlHttp.open("POST","data.xml") ;
xmlHttp.send(null) ;
}
function getContentCallback(){
if(xmlHttp.readyState==4){ // 数据已经全部读取完毕
// 从读取的内容中解析出xml文件
var root = xmlHttp.responseXML.getElementsByTagName("allplus")[0].childNodes ;
// 把内容读取出来
for(var i=0;i<root.length;i++){
var plus = root[i] ;
alert(plus.getElementsByTagName("id")[0].firstChild.nodeValue + " --> " +
plus.getElementsByTagName("title")[0].firstChild.nodeValue) ;
}
}
}
</script>
</head>
<body>
<input type="button" value="按我" onClick="getContent()">
</body>
</html>
直接通过JavaScript生成一个下拉列表框。
<html>
<head>
<title>dom01.htm</title>
<script language="javaScript">
function fun(){
var select = document.getElementById("plus") ;
select.length = 1 ; // 每次只能选择一个内容
select.options[0].selected = true ; // 第一个被默认选中
var id = 1 ;
var title = "北京" ;
var option = document.createElement("option") ;
option.setAttribute("value",id) ;
option.appendChild(document.createTextNode(title)) ;
select.appendChild(option) ;
}
</script>
</head>
<body>
<form>
<select name="plus" id="plus">
<option value="0">没有地区</option>
</select>
<input type="button" value="按我" onClick="fun()">
</select>
</body>
</html>
以上代码发现,HTML中也是可以使用DOM解析操作的。
4、总结
1、 DOM与SAX解析各自的优点及缺点
2、 灵活使用Jdom解析输出
3、 可以直接使用AJAX读取XML文件格式的内容
4、 HTML中的所有元素都可以使用DOM解析操作
5、预习任务
1、 Hibernate入门
6、作业
使用Struts + AJAX + Jdom + XML生成一个级联菜单,依然使用地区-子地区操作
• Struts中使用DAO可以取出全部的子地区,根据地区编号取
• 在Action中使用内存输出流,将所有的子地区生成一个XML风格的文件
|- 内存输入、输出流:ByteArrayOutputStream、ByteArrayInputStream
• 前台的HTML页面中可以列出全部的地区,之后地区改变,可以通过AJAX取出全部的子地区
• 子地区使用JavaScript进行DOM解析,从返回的XML文件里取出全部的内容
• 注意:所有生成的XML文件都不能以文件的形式出现。
相关推荐
在这个"CSS+JQuery+XML二级菜单"的示例中,我们将深入探讨这三种技术如何协同工作来实现这一功能。 首先,CSS(层叠样式表)是网页设计的基础,用于定义页面元素的样式,如字体、颜色、布局等。在二级菜单的设计中...
本篇将详细讲解如何在命令行环境下对Android APK包内的XML二进制文件进行修改。 首先,我们需要了解APK的结构。APK文件实际上是一个ZIP压缩包,包含Dalvik字节码(DEX文件)、资源文件(res目录)、XML布局文件...
### dropdownlist&xml二级联动知识点解析 #### 一、知识点概述 在Web开发中,有时我们需要实现一个下拉列表(dropdownlist),并且当用户选择其中一个选项时,另一个下拉列表会根据用户的选择动态地更新其内容。...
"Java XML 二"之Schema总结,主要关注的是XML Schema,它是XML文档结构和数据类型的一种规范,用于提供比DTD(Document Type Definition)更强大的验证功能。以下是对该主题的详细概述: 1. **XML Schema定义** ...
本资源,"二进制AndroidManifest.xml修改神器~",提供了一种工具——AXMLTWOEditor,用于直接修改二进制格式的`AndroidManifest.xml`文件。 通常情况下,`AndroidManifest.xml`以文本形式存在,开发者可以使用XML...
二进制XML存储方案BinXML实现方法 BinXML是我个人杜撰出来的名字,不知道是否合适,也不知道是否已存在类似的解决方案。在vcer.net上我将前一段时间的这个BinXML方案贡献出来,希望能够与广大vcer分享。 当时问题的...
二、Myeclipse关联的maven本地仓库配置文件settings.xml (1)可自定义文件名 D:\developsoft\javaweb\commonPlugins\maven\apache-maven-3.8.1_first\conf\settings_Myeclipse1.xml 三、3个可单独使用的,maven项目...
**AMXLPrinter2:二进制XML到文本的转换工具** 在移动应用开发,特别是针对Android平台时,理解和分析APK文件内部结构是常见的需求。其中,XML文件扮演着核心角色,存储了应用的布局、资源和配置信息。然而,为了...
描述: 对tinyxml库封装的简单类: 1,创建、保存xml 2,动态创建节点,更改名称以及值;动态删除 3,动态增加、删除属性,遍历、读取属性名称以及值 背景: tinyxml对xml操作的接口过于分散,为了适应自己的需要,...
为了解决这个问题,出现了XML二进制序列化和SOAP二进制编码,以提高传输速度和减少带宽消耗。 1. XML二进制序列化:这是将XML数据转换成二进制格式的过程,目的是减少数据的大小,从而提高网络传输效率。常见的XML...
**步骤二:解析XML数据** 解析XML数据通常涉及到XPath或LINQ to XML。XPath是一种在XML文档中查找信息的语言,而LINQ to XML提供了更面向对象的查询方式。根据XML文件结构,你可以选择合适的方法来提取所需数据。 ...
通过xml2axml.jar工具反编译AndroidManafest文件将整个axml二进制文件解码为常规xml保存为文件,再将xml编码为axml二进制文件,还是很好用的,axml文件我在idea中打开也是乱码,只能求助工具反编译。
综上所述,XML、JS和SQL是实现省市二级联动的常见技术手段。XML用于结构化数据,JS负责前端交互,SQL则用于后台数据的管理和查询。根据项目需求和技术栈,可以选择合适的方法来实现这一功能。在实际应用中,可能会...
当涉及到二维数组时,我们经常需要将这些数据转化为XML,以便与不同的系统或服务进行数据交换。XML(Extensible Markup Language)是一种用于存储和传输数据的标准格式,它允许我们以结构化的方式组织信息。在这个...
【XML第二次作业详解】 XML(eXtensible Markup Language)是一种用于标记数据的语言,它允许开发者自定义标签来描述数据的结构和意义。本作业主要涉及XML的基本应用,包括创建XML文档、定义DTD(Document Type ...
axml printer2.jar能够将.axml二进制文件转换为可读的XML格式,帮助开发者查看和修改应用的用户界面设计。 反编译APK的过程大致如下: 1. 使用解压工具将APK文件解压,获取到里面的classes.dex文件。 2. 运行dex2...
XML,全称Extensible Markup Language,是一种用于存储和传输数据的标记语言。它以其结构化、自描述性和可扩展性而被广泛应用于网络数据交换、配置文件存储、电子出版等领域。在XML的学习过程中,理解其基本语法至关...
#### 二、XML索引技术概述 XML索引技术主要关注如何为XML文档建立有效的索引结构,以便于快速定位和检索文档中的相关信息。一个高效的XML索引不仅能够显著提高查询响应速度,还能够支持复杂查询需求,如路径查询、...
本项目是基于tinyxml2进行的二次封装,旨在进一步简化XML的操作,提供更友好的API,提升开发效率。 在C++中,原始的tinyxml2库可能需要用户手动处理许多底层细节,如节点遍历、属性获取等。通过对tinyxml2的封装,...