要读的xml文件
<xml version="10" encoding="GB2312">
<学生花名册>
<学生 性别 = "男">
<姓名>李华</姓名>
<年龄>14</年龄>
</学生>
<学生 性别 = "男">
<姓名>张三</姓名>
<年龄>16</年龄>
</学生>
</学生花名册>
Vector students_Vector;
private Vector readXMLFile(String file) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactorynewInstance();
DocumentBuilder builder = dbfnewDocumentBuilder();
Document doc = builderparse(file); // 获取到xml文件
// 下面开始读取
Element root = docgetDocumentElement(); // 获取根元素
NodeList students = rootgetElementsByTagName_r("学生");
students_Vector = new Vector();
for (int i = 0; i < studentsgetLength(); i++) {
// 一次取得每一个学生元素
Element ss = (Element) studentsitem(i);
// 创建一个学生的实例
student stu = new student();
stusetSex(ssgetAttribute("性别"));
NodeList names = ssgetElementsByTagName_r("姓名");
Element e = (Element) namesitem(0);
Node t = egetFirstChild();
stusetName(tgetNodeValue());
NodeList ages = ssgetElementsByTagName_r("年龄");
e = (Element) agesitem(0);
t = egetFirstChild();
stusetAge(IntegerparseInt(tgetNodeValue()));
students_Vectoradd(stu);
}
return students_Vector;
}
参照这个写
创建解析器
SAXReader saxreader = new SAXReader();
读取文档
Document doc = saxreaderread(new File("url"));
获取根
Element root = docgetRootElement();
获取子节点
List<Element> list = rootelements();
Systemoutprintln(eelementText("name"));
Systemoutprintln(eelement("score")attributeValue("java"));
Reader reader = new InputStreamReader(con
getInputStream());
SAXReader sax = new SAXReader();
// saxsetEncoding("GBK");
Document document = saxread(reader);
documentsetXMLEncoding("GBK");
Element root = documentgetRootElement();
// Document doc = readerread(read);
// Element root = docgetRootElement();
readNode(root, "");
public static void readNode(Element root, String prefix) {
if (root == null) return;
// 获取属性
List<Attribute> attrs = rootattributes();
if (attrs != null && attrssize() > 0) {
Systemerrprint(prefix);
for (Attribute attr : attrs) {
Systemerrprint(attrgetValue() + " ");
}
Systemerrprintln();
}
// 获取他的子节点
List<Element> childNodes = rootelements();
prefix += "\t";
for (Element e : childNodes) {
//输出内容
Systemerrprintln(egetName()+":"+egetData());
readNode(e, prefix);
}
}
你说的是获取指定id下面的节点的属性值吧!
程序如下,其中equal(“”)双引号中的值为节点的属性值
属性值获取如下:
package saxbuilderibmxmlproperty;
import javaioFile;
import javaioIOException;
import javautilIterator;
import orgdom4jAttribute;
import orgdom4jDocument;
import orgdom4jDocumentException;
import orgdom4jElement;
import orgdom4jioSAXReader;
import orgjdomJDOMException;
import orgjdominputSAXBuilder;
public class XmlProperty {
public Element element;
String path = "D:\\xml\\axml";
public void getElementProperty() {
File file = new File(path);
try {
SAXReader reader = new SAXReader();
Document dc = readerread(file);
Element e = dcgetRootElement();
// 节点值
Element child = (Element) egetQName("COMMAND");
Systemoutprintln(childtoString());
// 一级节点
for (Iterator iterator = eelementIterator(); iteratorhasNext();) {
Element el = (Element) iteratornext();
// 一级节点的属性信息
for (Iterator iterator2 = elattributeIterator(); iterator2
hasNext();) {
Attribute attribute = (Attribute) iterator2next();
if(attributegetName()equals("bodyCategory")){
Systemoutprintln("attributegetName()一级节点的属性信息+"+attributegetName()+attributegetValue());
}else{
Systemoutprintln("attributegetName()一级节点的属性信息+"+attributegetName()+attributegetValue());
}
// 二级节点
for (Iterator iterator3 = elelementIterator(); iterator3
hasNext();) {
Element ele = (Element) iterator3next();
// 二级节点的属性信息
for (Iterator iterator4 = eleattributeIterator(); iterator4
hasNext();) {
Attribute attribute1 = (Attribute) iterator4next();
if(attribute1getName()equals("cmdType")){
Systemoutprintln("attribute1getName()二级节点的属性信息+"+attribute1getName()+"+"+attribute1getValue());
}else{
Systemoutprintln("attribute1getName()二级节点的属性信息+"+attribute1getName()+"+"+attribute1getValue());
}
}
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
下个dom4j包我下面的方法笨了点不知道还有好的不
import javaioFile;
import javautilIterator;
import orgdom4j;
import orgdom4jioSAXReader;
public class ResultXmlTest1 {
public static void main(String args[])
{
SAXReader reader=new SAXReader();
try
{
Document doc=readerread(new File("resultxml"));
Element root=docgetRootElement();
for(Iterator ite=rootelementIterator();itehasNext();)
{
Element ele=(Element)itenext();
for(Iterator iter=eleelementIterator();iterhasNext();)
{
Element elem=(Element)iternext();
//Systemoutprintln(elemgetName());
for(Iterator itera=elemelementIterator();iterahasNext();)
{
Element eleme=(Element)iteranext();
//Systemoutprintln(elemegetName());
for(Iterator iterat=elemeelementIterator();iterathasNext();)
{
Element elemem=(Element)iteratnext();
//Systemoutprintln(elememgetName());
for(Iterator iterato=elememelementIterator();iteratohasNext();)
{
Element elememe=(Element)iteratonext();
//Systemoutprintln(elememegetName());
for(Iterator last=elememeelementIterator();lasthasNext();)
{
Element elemLast=(Element)lastnext();
//Systemoutprintln(elemLastgetName());
for(Iterator at=elemLastattributeIterator();athasNext();)
{
Attribute att=(Attribute)atnext();
if(attgetName()equals("start"))
Systemoutprintln(attgetText());
}
}
}
}
}
}
}
}catch(DocumentException e)
{
eprintStackTrace();
}
}
}
以上就是关于java中用dom4j如何循环XML各个节点,输出属性值到控制台请帮忙写出代码,谢谢!!急急、、急、、全部的内容,包括:java中用dom4j如何循环XML各个节点,输出属性值到控制台请帮忙写出代码,谢谢!!急急、、急、、、java怎么通过xml节点的属性获取这个节点的值、java语句如何获取XML文件的节点值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)