-2
xmlファイルのフィールドのJavaから読み取る方法:私はxmlファイルのcXml.xml持っ
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<clients>
<entity class="movieRental.domain.Client">
<field name="name" type="java.lang.String" value="mary"/>
<field name="age" type="int" value="23"/>
<field name="id" type="java.lang.Object" value="1"/>
</entity>
<entity class="movieRental.domain.Client">
<field name="name" type="java.lang.String" value="anne"/>
<field name="age" type="int" value="34"/>
<field name="id" type="java.lang.Object" value="2"/>
</entity>
<entity class="movieRental.domain.Client">
<field name="name" type="java.lang.String" value="john"/>
<field name="age" type="int" value="22"/>
<field name="id" type="java.lang.Object" value="3"/>
</entity>
<entity class="movieRental.domain.Client">
<field name="name" type="java.lang.String" value="miriam"/>
<field name="age" type="int" value="28"/>
<field name="id" type="java.lang.Object" value="7"/>
</entity>
</clients>
を、私はそれから読み取ると、このためconsole.MyコードのJavaに印刷したいです:
package movieRental.util;
import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
public class ClientX {
public static void main(String argv[]) {
try {
File fXmlFile = new File("C:\\Users\\Adina\\Desktop\\proj1-vers2\\data\\cXml.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("entity");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Entity class : " + eElement.getAttribute("class"));
System.out.println("Name : " + eElement.getElementsByTagName("name").item(0).getTextContent());
System.out.println("Type : " + eElement.getElementsByTagName("type").item(0).getTextContent());
System.out.println("Value : " + eElement.getElementsByTagName("value").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
私はこのクラスを実行すると、それは私を与える:
Current Element :entity
Entity class : movieRental.domain.Client
java.lang.NullPointerException
at movieRental.util.ClientX.main(ClientX.java:46)
xmlファイルからすべての値を印刷する方法は?ありがとうございました。
の可能性のある重複した[?NULLポインタ例外であり、私はそれをどのように修正すればよい何](http://stackoverflow.com/questions/218384/what-is- a-null-pointer-exception-and-how-do-i-fix-it) – TheMirrox
コードを確認してください。解析している要素は 'field'タグの親要素です。 '名前'というタグはありません。 'フィールド'の属性です –