-6

XML ファイルから Java コードにデータを取得する方法を知りたいです。このために、XML ファイルを作成してから、Java コードを作成します。次に、XML から Java にデータを取得しようとします。このためには、Java コードでマッピングを行うか、Java API を使用する必要があります。あなたの知識を手伝ってくれるか、勉強のためのリンクを教えてください!

4

3 に答える 3

3

XML を文字列として読み取り、組み込みの SAX または DOM パーサーを使用して解析できます。

JAXBを使用して、XML をオブジェクトに直接マップできます。

あなたの選択。しかし、ググって勉強する必要があります。

于 2013-06-30T12:19:17.940 に答える
2

DOM XML パーサー (JAXP) を使用できます。次の例は、mkyong からの抜粋です。

<company>
<staff id="1001">
    <firstname>yong</firstname>
    <lastname>mook kim</lastname>
    <nickname>mkyong</nickname>
    <salary>100000</salary>
</staff>
<staff id="2001">
    <firstname>low</firstname>
    <lastname>yin fong</lastname>
    <nickname>fong fong</nickname>
    <salary>200000</salary>
</staff>
</company>

Java コード:

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;
import java.io.File;

public class ReadXMLFile {

   public static void main(String argv[]) {

       try {
        File fXmlFile = new File("/Users/mkyong/staff.xml");
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile); 
        //optional, but recommended
        //read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
        doc.getDocumentElement().normalize(); 
        System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
        NodeList nList = doc.getElementsByTagName("staff");
        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("Staff id : " + eElement.getAttribute("id"));
        System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
        System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
        System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
        System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent());

            }
        }
       } catch (Exception e) {
        e.printStackTrace();
       }
    }

}

于 2013-06-30T12:40:03.667 に答える