思路:利用jasp进行dom方式解析
《基本操作就这些,必须会》
1,得到解析工厂DocumentBuilderFactory
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
2, 得到解析器 DocumentBuilder
DocumentBuilder builder=factory.newDocumentBuilder();
3,解析指定的xml文档,得到代表内存dom树的document对象
Document document=builder.paser("xx.xml");
练习:
(1)得到某个具体的节点内容,打印第2本书的作者
public static void test1(Document document)
{
//根据标签名称获取所有的作者元素
NodeList n1=document.getElementByTagName("");
//按照索引取第二个作者元素
Node node=n1.item(1);
//打印文本元素
String text=node.getTextContent();
System.out.println(text);
}
(2).遍历所有元素节点,打印元素的名称
public static void test2(Document document)
{
//判断当前节点是不是一个元素节点
//short type=node.getNodeType();
if(node.getNodeType()==Node.ELEMENT_NODE)
{
//如果是,打印他的名称
System.out.println(node.getNodeName());
}
//如果不是,找到他的孩子们
NodeList n1=node.getChildNodes();
int len=n1.getLength();
for(int i=0;i
{
//遍历孩子:递归
Node n =n1.item(i);
test2(n);
}
}
3,修改某个元素节点的主题内容,把第一本书的售价改为xx
public static void test3(Document document)
{
//找到第一本书的售价
NodeList na=document.getElementByTagName("");
//设置其主体的内容
Node node=na.item(0);
node.setTextContext("xx");
TransformerFactory facotry=TransformerFactory.newInstance();
Transformer ts=factry.newTransformer();
ts.transform(new DOMSource(document),new StreamResult("文件地址"));
}
4.向指定元素节点中增加子元素节点,
public static void test4(Document doucment)
{
//创建一个新的元素并设置其主题内容
Element e=document.createElement_x("内部价");
e.setTextContext("00");
//找到第一个对象,改变第一个对象
Node firstBookNode=document.getElementsByTagName_r("书").item(0);
fristBookNode.appendChild(e);
//把内存中的Document 树写回xml文件中
TransformerFactory facotry=TransformerFactory.newInstance();
Transformer ts=factry.newTransformer();
ts.transform(new DOMSource(document),new StreamResult("文件地址"));
}
5.向指定元素节点上增加同级元素节点(改变顺序)
public static void test5(Document document)
{
//创建一个新的元素并设置其中的主题内容
Element e=document.createElent("");
e.setTextContent("00");
//找到第一对象
Node duixiang=document.getElementByTagName("添加的标签").item(0);
//添加顺序改变(其实就是插入的位置)
duixiang.getParentNode().insertBefore(e.duixiang);
//把内存中的Document 树写回xml文件中
TransformerFactory facotry=TransformerFactory.newInstance();
Transformer ts=factry.newTransformer();
ts.transform(new DOMSource(document),new StreamResult("文件地址"));
}
6.删除指定元素节点:删除内部价
public static void test6(Document document)
{
//找到节点,用父删除
Node n=document.getElementsByTagName_r("xx").item(0);
n.getParentNode().removeChild(n);
//把内存中的Document 树写回xml文件中
TransformerFactory facotry=TransformerFactory.newInstance();
Transformer ts=factry.newTransformer();
ts.transform(new DOMSource(document),new StreamResult("文件地址"));
}
7.操作xml文件属性,打印第一本书的出版社
public static void test7(Document document)
{
//得到对象
Node n=document.getElementByTagName("").item(0);
//打印指的的属性取值
Element e=(Element)n;
}
8.给对象添加属性
public static void test8(Document document)
{
//得到对象
Node n=document.getElementByTagName("").item(0);
//打印指的的属性取值
Element e=(Element)n;
e.setAttrubute("属性名","内容");
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!