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

XML数据的解析

发布时间:2020-12-16 00:16:03 所属栏目:百科 来源:网络整理
导读:XML Xml 简介: 1.Xml 是一种标记语言 2.Xml 的设计宗旨是传输数据,而非显示数据 3.Xml 标签是没有被预定义 4.Xml 被设计为具有自我描述性 5.W3c 的推荐标准 Xml 和 html 的对比: 1.Xml 不是 html 的替代 2.Xml 被设计为传输和存储数据,其焦点是数据的内

XML

Xml简介:

1.Xml是一种标记语言

2.Xml的设计宗旨是传输数据,而非显示数据

3.Xml标签是没有被预定义

4.Xml被设计为具有自我描述性

5.W3c的推荐标准

Xmlhtml的对比:

1.Xml不是html的替代

2.Xml被设计为传输和存储数据,其焦点是数据的内容

3.Html被设计用来显示数据,其焦点是数据的外观

4.Html旨在显示信息,html旨在传输信息

Xml的特点:

Xml仅仅是纯文本,xml没有预定的标签

Xml的语法规则:

1.必须关闭标签

2.区分大小写

3.必须正确的嵌套

4.必须有根元素

5.属性值必须加引号

6.空格会被保留

Xml文件的读取

//factory->builder->document

DocumentBuilderFactory builderfactory=DocumentBuilderFactory.newInstance();

DocumentBuilder builder=builderfactory.newDocumentBuilder();

Document document=builder.parse(getAssets().open("test.xml")); 

//创建一个element盛放节点

Element element=document.getDocumentElement();

//创建一个nodelist盛放list数据

NodeList list=element.getElementsByTagName("lan");

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

Element lan=(Element)list.item(i);

//用getattribute得到节点属性

text.append(lan.getAttribute("id")+"n");

text.append(lan.getElementsByTagName("name").item(0).getTextContent()+"n");

text.append(lan.getElementsByTagName("ide").item(0).getTextContent()+"n");

}


Xml文件的写入

DocumentBuilderFactory builderfactory=DocumentBuilderFactory

.newInstance();

DocumentBuilder builder = builderfactory.newDocumentBuilder();

Document newxml=builder.newDocument();

//创建第一个元素

Element languages=newxml.createElement("languages");

//把数据放入第一个元素中

languages.setAttribute("cat","it");

//创建一个lan1元素

Element lan1=newxml.createElement("lan");

//设置这个元素的属性

lan1.setAttribute("id","1");

Element name1=newxml.createElement("name");

//设置元素的内容

name1.setTextContent("java");

Element ide1=newxml.createElement("ide");

ide1.setTextContent("eclipse");

//把元素放进lan1中

lan1.appendChild(name1);

lan1.appendChild(ide1);

//把lan1放入根元素中

languages.appendChild(lan1);

Element lan2=newxml.createElement("lan");

lan2.setAttribute("id","2");

Element name2=newxml.createElement("name");

name2.setTextContent("swift");

Element ide2=newxml.createElement("ide");

ide2.setTextContent("xcode");

lan2.appendChild(name2);

lan2.appendChild(ide2);

languages.appendChild(lan2);

//把根元素添加到newxml中

newxml.appendChild(languages);

//使用TransformerFactory->Transformer设置输出编码方式

TransformerFactory transformerFactory=TransformerFactory

.newInstance();

Transformer transformer=transformerFactory.newTransformer();

transformer.setOutputProperty("encoding","utf-8");

//使用stringwrite和transformer输出结果

StringWriter sw=new StringWriter();

transformer.transform(new DOMSource(newxml),new StreamResult(sw));

text.setText(sw.toString());

(编辑:李大同)

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

    推荐文章
      热点阅读