java读取xml文件
解决时间 2021-05-07 04:16
- 提问者网友:心如荒岛囚我终老
- 2021-05-06 03:52
<?xml version="1.0" encoding="UTF-8"?>
<personnel xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation='personal.xsd'>
<person id="Big.Boss" >
<name><family>Boss</family> <given>Big</given></name>
<email>chief@foo.com</email>
<link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
</person>
<person id="one.worker">
<name><family>Worker</family> <given>One</given></name>
<email>one@foo.com</email>
<link manager="Big.Boss"/>
</person>
<person id="two.worker">
<name><family>Worker</family> <given>Two</given></name>
<email>two@foo.com</email>
<link manager="Big.Boss"/>
</person>
<person id="three.worker">
<name><family>Worker</family> <given>Three</given></name>
<email>three@foo.com</email>
<link manager="Big.Boss"/>
</person>
<person id="four.worker">
<name><family>Worker</family> <given>Four</given></name>
<email>four@foo.com</email>
<link manager="Big.Boss"/>
</person>
<person id="five.worker">
<name><family>Worker</family> <given>Five</given></name>
<email>five@foo.com</email>
<link manager="Big.Boss"/>
</person>
</personnel>
这样的xml文件怎么读取要读取<family>Worker</family>里面的值和<given>Five</given>的值还有<link manager="Big.Boss"/>
的值,怎么读取。
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-05-06 05:08
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
public class MyXMLReader2DOM {
public static void main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("a.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList persons = doc.getElementsByTagName("person");
for (int i = 0; i < persons.getLength(); i++) {
Element person = (Element)persons.item(i);
Node name = person.getElementsByTagName("name").item(0);
String Family = name.getElementsByTagName("family").item(0).getFirstChild().getNodeValue();
String given = name.getElementsByTagName("given").item(0).getFirstChild().getNodeValue();
Element link = (Element)person.getElementsByTagName("link").item(0);
String manager = link.getAttributeValue("manager");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
全部回答
使用common中的digest工具
- 2楼网友:举杯邀酒敬孤独
- 2021-05-06 07:28
利用循环然后判断里面的字段是否相等吧,一般解析xml是把整个xml的数据全部读出来的,然后加个if判断吧
- 3楼网友:不想翻身的咸鱼
- 2021-05-06 06:31
给你一个完整的例子
前提必须要去下一个jdom.jar 地址: http://www.jdom.org/dist/binary/
然后注意把xmlFile改一下
import org.jdom.*;
import java.io.*;
import java.util.List;
import org.jdom.input.SAXBuilder;
public class JdomTest {
private String xmlFile = "data.xml";
public void readXML(){
SAXBuilder builder = new SAXBuilder();
Document doc = null;
try{
doc = builder.build(new File(xmlFile));
Element root = doc.getRootElement();
List<Element> list = root.getChildren();
for(Element element : list){
System.out.println("id = "+element.getAttributeValue("id"));
System.out.println("family = "+element.getChild("name").getChild("family").getText());
System.out.println("family = "+element.getChild("name").getChild("given").getText());
System.out.println("manager = "+element.getChild("link").getAttributeValue("manager"));
System.out.println("=======================================");
}
}catch(FileNotFoundException fe){
System.out.println("找不到"+xmlFile+"文件");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String args[]) {
JdomTest jdom = new JdomTest();
jdom.readXML();
}
}
- 4楼网友:撞了怀
- 2021-05-06 05:16
package demo1; //此处是我的项目包名,您不用复制
//以下是导入包
import java.io.FileInputStream;
import java.util.List;
import java.util.Vector;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class Test {
public static void main(String[] args) {
FileInputStream fi = null;
try {
fi = new FileInputStream("D:\\a.xml");
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); // 得到根元素
List Allstudents = root.getChildren(); // 得到根元素所有子元素的集合
Element student = null;
for (int i = 0; i < Allstudents.size(); i++) {
student = (Element) Allstudents.get(i);
//下面代码根据节点名称获得xml文件节点内的信息并输出。
System.out.println(student.getChild("姓名").getText());
System.out.println(student.getChild("年龄").getText());
System.out.println(student.getChild("性别").getText());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fi.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
这只是参考!!
希望采纳!!!!!!!!
我要举报
大家都在看
推荐资讯