用的是jdom包
URL url = RederXml.class.getClassLoader().getResource("");
String path = url.toString() + "/config.xml";\\工程種xml的路徑
HashMap<String, String> map = new HashMap<String, String>();
SAXBuilder sax = new SAXBuilder();
Document doc = null;
try {
doc = sax.build(path);
} catch (JDOMException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Element root = doc.getRootElement();
B. java如何從一個xml文件讀取根節點、子節點屬性。
思路如下:
xml文件未知不明白什麼意思?我索性就理解為一個目錄下有很多xml文件,每個xml文件獲取其中的bean節點屬性。
1> 有xml文件路徑,獲取該路徑下的所有文件,用後綴「.xml」或「.XML」過濾得到xml文件。
2> javax.xml.parsers.DocumentBuilder builder = factory.newDocumentBuilder();
org.w3c.dom.Document doc = builder.parse(is); 創建文檔對象。
3>doc.getChildNodes()獲取文檔中所有的節點,循環遍歷所得節點node,
通過node.getAttributes()獲取節點所有屬性,獲取各個屬性name和值即可,輸出想要得到的數據。
或者通過doc.getElementsByTagName("bean");直接指定bean節點。然後用同樣的方法獲取屬性名和值,輸出。
以上是根據jdk的W3C庫解析的。想方便可以通過dom4j、jdom進行文件操作。思路變化不大。
C. JAVA解析xml得到節點的值
importjava.io.File;
importjava.util.Iterator;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.Element;
importorg.dom4j.io.SAXReader;
publicclassParseXml{
publicstaticvoidmain(String[]args)throwsDocumentException{
=newSAXReader();
Documentdoc=reader.read(newFile("d:/test.xml"));
Elementroot=doc.getRootElement();
Elementrecord=root.element("Record");
Iterator<Element>it=record.elementIterator("Field");
while(it.hasNext()){
Elementelement=it.next();
Elementname=element.element("Name");
System.out.println(name.getText());
Elementvalue=element.element("Value");
ParseXml.parseValue(value);
}
}
publicstaticvoidparseValue(Elementvalue){
Iterator<Element>it=value.elementIterator();
if(it.hasNext()){
while(it.hasNext()){
Elementelement=it.next();
ElementinnerField=element.element("Field");
ElementinnerName=innerField.element("Name");
System.out.println(innerName.getText());
ElementinnerValue=innerField.element("Value");
parseValue(innerValue);
}
}else{
System.out.println(value.getText());
}
}
}
D. java中dom4j解析xml文件怎麼獲取節點屬性
dom4j中,使用Element.attributes方法可以獲取到節點的屬性,而使用elements則可以獲取相應的子節點
比如:專
Element root = doc.getRootElement();
List attrList = root.attributes();
for (int i = 0; i < attrList.size(); i++) {
//屬性的取得
Attribute item = (Attribute)attrList.get(i);
System.out.println(item.getName() + "=" + item.getValue());
}
List childList = root.elements();
for (int i = 0; i < childList.size(); i++) {
//子節點的操作
Element it = (Element) childList.get(i);
//對子屬節點進行其它操作...
}
E. JAVA中怎麼把XML文件中的數據通過JAXB技術保存到List集合裡面去,為什麼我的老報錯找不到根節點
先看看你給出的路徑對不對。File路徑。接著看看你xml文件符不符合jaxb規范。你通過註解的方式配置的xml,那你還得看看xmlElement下的每一個uri和你java po類的uri對應不。也就是看欄位的名字對應不,問題的關鍵 是處在這里,uri不對應。該為一致或是@XMLElement(name="uri")