//
创建xml
import
java.io.File;
import
java.io.FileWriter;

import
org.dom4j.Document;
import
org.dom4j.DocumentHelper;
import
org.dom4j.Element;
import
org.dom4j.io.XMLWriter;


public
class
Creatxml
{


/** */
/**
* 建立一个XML文档,文档名由输入属性决定

*
@param
filename 需建立的文件名

*
@return
返回操作结果, 0表失败, 1表成功

*/
public
static
void
main(String str[])

{
createXMLFile(
"
c:/aaaa
"
);
}
public
static
int
createXMLFile(String filename)
{


/** */
/**
返回操作结果, 0表失败, 1表成功
*/
int
returnValue
=
0
;


/** */
/**
建立document对象
*/
Document document
=
DocumentHelper.createDocument();


/** */
/**
建立XML文档的根books
*/
Element booksElement
=
document.addElement(
"
books
"
);


/** */
/**
加入一行注释
*/
booksElement.addComment(
"
This is a test for dom4j, holen, 2004.9.11
"
);


/** */
/**
加入第一个book节点
*/
Element bookElement
=
booksElement.addElement(
"
book
"
);


/** */
/**
加入show属性内容
*/
bookElement.addAttribute(
"
show
"
,
"
yes
"
);


/** */
/**
加入title节点
*/
Element titleElement
=
bookElement.addElement(
"
title
"
);


/** */
/**
为title设置内容
*/
titleElement.setText(
"
Dom4j Tutorials
"
);



/** */
/**
类似的完成后两个book
*/
bookElement
=
booksElement.addElement(
"
book
"
);

bookElement.addAttribute(
"
show
"
,
"
yes
"
);

titleElement
=
bookElement.addElement(
"
title
"
);

titleElement.setText(
"
Lucene Studing
"
);

bookElement
=
booksElement.addElement(
"
book
"
);

bookElement.addAttribute(
"
show
"
,
"
no
"
);

titleElement
=
bookElement.addElement(
"
title
"
);

titleElement.setText(
"
Lucene in Action
"
);



/** */
/**
加入owner节点
*/
Element ownerElement
=
booksElement.addElement(
"
owner
"
);

ownerElement.setText(
"
O'Reilly
"
);



try
{


/** */
/**
将document中的内容写入文件中
*/
XMLWriter writer
=
new
XMLWriter(
new
FileWriter(
new
File(filename)));

writer.write(document);

writer.close();


/** */
/**
执行成功,需返回1
*/
returnValue
=
1
;


}
catch
(Exception ex)
{

ex.printStackTrace();

}

return
returnValue;

}
}
//
修改xml
---------------------------------------------------------------------
import
java.io.File;
import
java.io.FileWriter;
import
java.util.Iterator;
import
java.util.List;

import
org.dom4j.Attribute;
import
org.dom4j.Document;
import
org.dom4j.Element;
import
org.dom4j.io.SAXReader;
import
org.dom4j.io.XMLWriter;


public
class
UpdateXml
{


/** */
/**
*
@param
args
*/
public
static
void
main(String[] args)
{
//
TODO Auto-generated method stub
ModiXMLFile(
"
c:/aaaa
"
,
"
c:/bbb.xml
"
);
}
/** */
/**
* 修改XML文件中内容,并另存为一个新文件

* 重点掌握dom4j中如何添加节点,修改节点,删除节点

*
@param
filename 修改对象文件

*
@param
newfilename 修改后另存为该文件

*
@return
返回操作结果, 0表失败, 1表成功

*/
public
static
int
ModiXMLFile(String filename,String newfilename)
{

int
returnValue
=
0
;


try
{

SAXReader saxReader
=
new
SAXReader();

Document document
=
saxReader.read(
new
File(filename));


/** */
/**
修改内容之一: 如果book节点中show属性的内容为yes,则修改成no
*/
/** */
/**
先用xpath查找对象
*/
List list
=
document.selectNodes(
"
/books/book/@show
"
);

Iterator iter
=
list.iterator();


while
(iter.hasNext())
{

Attribute attribute
=
(Attribute)iter.next();


if
(attribute.getValue().equals(
"
yes
"
))
{

attribute.setValue(
"
no
"
);

}

}


/** */
/**
* 修改内容之二: 把owner项内容改为Tshinghua

* 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type

*/
list
=
document.selectNodes(
"
/books/owner
"
);

iter
=
list.iterator();


if
(iter.hasNext())
{

Element ownerElement
=
(Element)iter.next();

ownerElement.setText(
"
Tshinghua
"
);

Element dateElement
=
ownerElement.addElement(
"
date
"
);

dateElement.setText(
"
2004-09-11
"
);

dateElement.addAttribute(
"
type
"
,
"
Gregorian calendar
"
);

}


/** */
/**
修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点
*/
list
=
document.selectNodes(
"
/books/book
"
);

iter
=
list.iterator();


while
(iter.hasNext())
{

Element bookElement
=
(Element)iter.next();

Iterator iterator
=
bookElement.elementIterator(
"
title
"
);


while
(iterator.hasNext())
{

Element titleElement
=
(Element)iterator.next();


if
(titleElement.getText().equals(
"
Dom4j Tutorials
"
))
{

bookElement.remove(titleElement);

}
}
}



try
{


/** */
/**
将document中的内容写入文件中
*/
XMLWriter writer
=
new
XMLWriter(
new
FileWriter(
new
File(newfilename)));

writer.write(document);

writer.close();


/** */
/**
执行成功,需返回1
*/
returnValue
=
1
;


}
catch
(Exception ex)
{

ex.printStackTrace();

}


}
catch
(Exception ex)
{

ex.printStackTrace();

}
return
returnValue;

}
}
//
格式化xml
------------------------------------------------------------------------------------------------------------
import
java.io.File;
import
java.io.FileWriter;

import
org.dom4j.Document;
import
org.dom4j.io.
*
;


public
class
OutXml
{


/** */
/**
*
@param
args
*/
public
static
void
main(String[] args)
{
//
TODO Auto-generated method stub
formatXMLFile(
"
c:/bbb.xml
"
);
}
/** */
/**
* 格式化XML文档,并解决中文问题

*
@param
filename

*
@return
*/
public
static
int
formatXMLFile(String filename)
{

int
returnValue
=
0
;


try
{

SAXReader saxReader
=
new
SAXReader();

Document document
=
saxReader.read(
new
File(filename));

XMLWriter writer
=
null
;


/** */
/**
格式化输出,类型IE浏览一样
*/
OutputFormat format
=
OutputFormat.createPrettyPrint();


/** */
/**
指定XML编码
*/
format.setEncoding(
"
GBK
"
);

writer
=
new
XMLWriter(
new
FileWriter(
new
File(filename)),format);

writer.write(document);

writer.close();


/** */
/**
执行成功,需返回1
*/
returnValue
=
1
;


}
catch
(Exception ex)
{

ex.printStackTrace();

}
return
returnValue;

}
}
posted on 2006-12-01 11:45
一手的小窝窝 阅读(1283)
评论(0) 编辑 收藏 所属分类:
JAVA