簡體   English   中英

XML到哈希表

[英]XML to Hashtable

目前,我有下面的代碼將數據放入哈希中。 我的問題:我必須在!!! SOMETHING !!!的那一部分中輸入哪個值。 該代碼僅需讀取一個elementtag並將其值插入哈希表中。

public void ReadXML(){
    try {

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(fileout);
        doc.getDocumentElement().normalize();
        Hashtable hash = new Hashtable();

        NodeList dataNodes = doc.getElementsByTagName("DataArea");
//      getChildNodes().item(0).getChildNodes();
        Element root = doc.getDocumentElement();
        String dataNodeIndex = root.toString();
        System.out.println("");

    for (int dataNodeIndex1 = 0; dataNodeIndex1 < dataNodes.getLength(); dataNodeIndex1++)
        {
            Node nodeName = dataNodes.item(dataNodeIndex1);

            if (nodeName.getNodeType() == Node.ELEMENT_NODE) {
                Element elementName = (Element) nodeName;
                NodeList elementNameList = elementName.getElementsByTagName(elementtag1);
                Element elementName2 = (Element) elementNameList.item(0);
                NodeList nameElement = elementName2.getChildNodes();
                System.out.println("NodeContent: "  + ((Node) nameElement.item(0)).getNodeValue());

            }
            hash.put(elementtag1, !!!SOMETHING!!!);

            System.out.println(hash);
        }       


    }



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


}

您應該使用我發現的這些方法:

protected String getString(String tagName, Element element) {
    NodeList list = element.getElementsByTagName(tagName);
    if (list != null && list.getLength() > 0) {
        NodeList subList = list.item(0).getChildNodes();

        if (subList != null && subList.getLength() > 0) {
            return subList.item(0).getNodeValue();
        }
    }

    return null;
}

像這樣使用它:

if (NodeName.getNodeType() == Node.ELEMENT_NODE) {
    Element ElementName = (Element) NodeName;
    Hash.put(Elementtag1, getString(Elementtag1, ElementName));

}

看看這個 :

http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/

如何使用Java檢索XML的元素值?

你選擇了不正確的集合類型進行此操作,如果你想保存你的元素標記值Set是的,它是更好地使用HashSet ,但實現的HashSet約你嘗試這樣做,這樣的值Set付諸HashMap像鑰匙,但你可以使用另一個集合,如ListQueueStack嘗試為您找到更好的選擇。 也許SAX對您來說是更好的DOM ...

為了使事情變得更輕松和更健壯,可以改用Properties ,它具有Hashtable的基礎實現(實際上是對其進行擴展),並且可以從XML導入和導出XML(請參見loadFromXMLstoreToXML方法)。 有關詳細信息,請參見http://www.ibm.com/developerworks/java/library/j-tiger02254/index.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM