加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML解析

发布时间:2020-12-16 00:06:31 所属栏目:百科 来源:网络整理
导读:我们先来了解下XML: 什么是 XML呢?简单来说可以总结为下面几点: XML 指可扩展标记语言(EXtensible Markup Language) XML 的设计宗旨是传输数据 XML 标签没有被预定义。您需要自行定义标签。 XML 是 W3C 的推荐标准 主要是应用Web前端开发的许多方面,常

我们先来了解下XML:

什么是 XML呢?简单来说可以总结为下面几点:

XML 指可扩展标记语言(EXtensible Markup Language)
XML 的设计宗旨是传输数据
XML 标签没有被预定义。您需要自行定义标签。

XML 是 W3C 的推荐标准

主要是应用Web前端开发的许多方面,常用语简化数据的存储和共享。

每种语言都有自己的语法规则,XML也不例外,XML的语法是:所有XML的元素都必须有关闭标签

XML 标签对大小写敏感,必须正确地嵌套

XML规则:

  • 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。
  • 减少对外部插件的需求(比如 Flash)
  • 更优秀的错误处理
  • 更多取代脚本的标记
  • HTML5 应该独立于设备
  • 开发进程应对公众透明

新特性

HTML中的一些有趣的新特性:

  • 用于绘画的 canvas 元素
  • 用于媒介回放的 video 和 audio 元素
  • 对本地离线存储的更好的支持
  • 新的特殊内容元素,比如 article、footer、header、nav、section
  • 新的表单控件,比如 calendar、date、time、email、url、search

要写的内容:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<!-- 这本书一般般 -->
<book lang="zh" >
<isbn>ABC-135-4BC</isbn>
<name>十万个为什么</name>
<price>80.00</price>
<author> &quot;匿 &lt;&gt; 名&quot; </author>
<description>
<![CDATA[
这是一本好书:
1. 价钱 < 平均价钱
2. 鳄鱼为什么吞石块?
鳄鱼的胃很柔软,它要借助石块来磨碎食物中的骨头和硬物。鳄鱼吞食的石块重量约为其体重的1%。
3. 海鱼为什么不咸?
海洋鱼类具有很强的排盐能力,它们除了从肾排掉一小部分盐外,还有专门的排盐器官,即位于鳃片中的“泌氯细胞”。
4. 水果为什么能解酒?
水果里含有机酸,而酒里的主要成分是乙醇,有机酸能与乙酸相互作用而形成酯类物质从而达到解酒的目的。
5. 含羞草为什么会“害羞”?
含羞草的叶枕里含有充足的水分,有外物触到叶子时,叶枕中的水流向两边,叶枕瘪了,叶子就垂下来了。
]]>
</description>
</book>
<book lang="zh" >
<isbn>ABC-145-4BC</isbn>
<name>爱你一万年</name>
<price>180.00</price>
<author>匿名</author>
</book>
</books>
解析文件的代码:
package cnte.du.android_xml;


import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;


import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetManager;
import android.util.Log;
import android.view.Menu;
import android.view.View;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


/**
* 监听
* @param view
*/
public void doClick(View view){
switch (view.getId()) {
case R.id.button1:
try {
parseBooksXml();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}

/**
* 解析图书xml文档 assets/books.xml
*/
private void parseBooksXml() throws Exception{
//读取assets目录下的books.xml文档
AssetManager assetManager = getAssets();
InputStream is = assetManager.open("books.xml");
//1. 获取Document对象
SAXReader reader = new SAXReader();
Document document = reader.read(is);
//2. 获取根节点
Element root = document.getRootElement();
//获取root下的所有book标签
List<Element> books = root.elements();
//遍历
for(Element e : books){
//e代表一个book标签 解析并打印子标签的内容
Iterator<Element> ite = e.elementIterator();
while(ite.hasNext()){
Element childElement = ite.next();
Log.i("info","标签名:"+childElement.getName()+" 标签内容:"+childElement.getTextTrim());
}
}
}
}


学艺不精,有不对的请多多指点迷津。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读