使用DOM维护手机收藏信息

public class XMLParse3 {

// 1.创建解析器工厂 DocumentBuilerFactory

// 2.创建解析器 (由解析工厂创建) 即为DocumentBuilder对象

// 3.由解析器对象指定XML文件进行解析, 构造DOM树,创建Document对象

// 4. 以Document对象对DOM树节点的操作, 比如 增删改查
Document doc = null;

public void getDocument() {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = dbf.newDocumentBuilder();
doc = builder.parse("收藏信息.xml"); // ---> 把xml解析为一个树状的结构
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void showInfo() {
NodeList brandlist = doc.getElementsByTagName("Brand");
for (int i = 0; i < brandlist.getLength(); i++) {
Node brand = brandlist.item(i);
Element element = (Element) brand;
String brandStr = element.getAttribute("name");
// System.out.println(brandStr);
NodeList typelist = element.getChildNodes();
for (int j = 0; j < typelist.getLength(); j++) {
Node nodetype = typelist.item(j);
if (nodetype.getNodeType() == Node.ELEMENT_NODE) {
Element elementtype = (Element) nodetype;
String typestr = elementtype.getAttribute("name");
System.out.println(brandStr + " : " + typestr);
}
}
}

}

public void saveInfo() {
// 1.创建转换工厂

try {
// 2.创建转换器
Transformer former = TransformerFactory.newInstance()
.newTransformer();
DOMSource xmlSource = new DOMSource(doc);
OutputStreamWriter os = null;
try {
os = new OutputStreamWriter(new FileOutputStream("新的收藏信息.xml"),
"GBK");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
StreamResult outputTarget = new StreamResult(os);

// 3.设置编码类型
former.setOutputProperty(OutputKeys.ENCODING, "GBK");
// 4.把DOM树转换为XML文件
former.transform(xmlSource, outputTarget);
System.out.println("save successfully");
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void addInfo() {
// 1.创建新节点,并设置name属性
Element newEle = doc.createElement("Brand");
newEle.setAttribute("name", "三星");
// 创建Type节点
Element newType = doc.createElement("Type");
newType.setAttribute("name", "Note7");
// 将子节点newtype放到 父节点newEle
newEle.appendChild(newType);

Element phoneElement = (Element) doc.getElementsByTagName("PhoneInfo")
.item(0);
// 2.把节点加到其父节点上
phoneElement.appendChild(newEle);
}

public void modification(){
NodeList list=doc.getElementsByTagName("Brand");
for(int i=0;i<list.getLength();i++){
Element branElement=(Element)list.item(i);
String brandName=branElement.getAttribute("name");
if(brandName.equals("小米")){
branElement.setAttribute("name", "xiaomi");
}
}
}

public void dele(){
NodeList list=doc.getElementsByTagName("Brand");
for(int i=0;i<list.getLength();i++){
Element branElement=(Element)list.item(i);
String brandName=branElement.getAttribute("name");
if(brandName.equals("三星")){
branElement.getParentNode().removeChild(branElement);
}
}
}
public static void main(String[] args) {
XMLParse3 x3 = new XMLParse3();
x3.getDocument();
x3.addInfo();
x3.showInfo();
x3.saveInfo();
x3.modification();
x3.showInfo();
x3.dele();
x3.showInfo();
}

}

时间: 2024-10-11 15:17:02

使用DOM维护手机收藏信息的相关文章

49.将手机收藏信息保存到文件中

import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.Docu

android 安卓APP获取手机设备信息和手机号码的代码示例

下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓手机.手机SIM卡确保插入手机里.eclipse ADT和android-sdk开发环境 第一步:新建一个android工程(JinshanTest), 并需要在工程的AndroidManifest.xml文件中,添加权限 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 图例: 第二步:新建一个工具类

PHP获取手机相关信息

该PHP操作类实现获取手机号手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 代码如下: <?php /** * @desc 手机操作类 获取手机相关信息 * @since */class mobile { /** * 函数名称: getPhoneNumber * 函数功能: 取手机号 * 输入参数: none * 函数返回值: 成功返回号码,失败返回false * 其它说明: 说明 */ public function getPhoneNu

Android获取手机相关信息

首先,一个小例子: package com.brio.testid; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.os.Bundle; import android.provider.Settings.Secure; import android.widget.TextView; public class MainActivity extends Activity {

windowsphone中获取手机位置信息

首先在界面中加入一个textblock控件以显示信息 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Runtime.InteropServices.WindowsRuntime; 6 using Windows.Foundation; 7 using Windows.Foundation.Collections; 8 using

拿什么保护个人信息,香港服务器如何做到的维护企业商业信息

CPU:L5520 双至强 8核 16G 内存 1T 硬盘 独享国际带宽 狂欢价 1000元/月 小刘 88986619 TEL 18702530757 官网:[url]www.chinahkidc.net[/url] 之前女大学生被骗学费投湖死亡,大学教授被骗上万元,淘宝乱点开链接而被扣钱,手机短信点开链接被骗钱,此外诸如此类信息,因为个人信息被泄露而导致的诈骗时间层出不穷,这样的局面可以有正解吗? 最近国家相关部门要求百姓的电话卡必须实名制的,相关的通信部门也已经开始完成了,并且还出台了相应

Android之Build类.(Android获取手机配置信息 )

一.类结构: java.lang.Object    ? android.os.Build 二.类概述:从系统属性中提取设备硬件和版本信息. 三.内部类: 1.Build.VERSION    各种版本字符串 2.Build.VERSION_CODES    目前已知的版本代码的枚举类 四.常量:UNKNOWN   当一个版本属性不知道时所设定的值.其字符串值为 "unknown" . 五.构造方法: Build () 六.静态属性 1.BOARD   主板:The name of t

The Suspects(并查集维护根节点信息)

The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 37090   Accepted: 17980 Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. T

battery-获取手机电量信息

我们如果想要获得手机的电池电量信息,可以借助广播来实现.因为当手机电池电量发生变化的时候,系统会发送一个广播.具体代码如下 //注册 intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); mContext.registerReceiver(mHallReceiver, intentFilter); //广播处理 intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED) { int le