Java XML到哈希表

Java XML到哈希表,java,xml,hashtable,rft,Java,Xml,Hashtable,Rft,目前,我有下面的代码将数据放入散列。 我的问题:我必须在部分中输入哪个值!!!某物 代码只需读取一个elementtag并将其值插入哈希表 public void ReadXML(){ try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder();

目前,我有下面的代码将数据放入散列。 我的问题:我必须在部分中输入哪个值!!!某物 代码只需读取一个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();
    }


}
public void ReadXML(){
试一试{
DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance();
DocumentBuilder=factory.newDocumentBuilder();
文档doc=builder.parse(fileout);
doc.getDocumentElement().normalize();
Hashtable hash=新的Hashtable();
NodeList dataNodes=doc.getElementsByTagName(“数据区域”);
//getChildNodes()。项(0)。getChildNodes();
元素根=doc.getDocumentElement();
字符串dataNodeIndex=root.toString();
System.out.println(“”);
对于(int-dataNodeIndex1=0;dataNodeIndex1
您为此操作选择了不正确的集合类型,如果您想将元素标记值保存在
集合中
是的,最好使用
哈希集
,但是
哈希集
的实现大约是您尝试的,因此
集合
的值像键一样放入
哈希映射
,但您可以使用另一个集合,如
列表
队列
堆栈
,尝试找到更适合您的集合。
也许
SAX
对您来说会更好
DOM

为了让事情变得更简单、更健壮,您可以使用a,它具有a的底层实现(它实际上扩展了它),并且可以导入和导出到XML或从XML导出(请参见
loadFromXML
storeToXML
方法)。有关详细信息,请参阅。

您应该使用我发现的这些方法:

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));

}
请查看:


您可以使用
null
,但如果您的表没有存储键值对,则最好使用
哈希集。很抱歉,
null
不能用作
哈希表的值。使用任何你不关心的对象,这不会是一个严重的内存泄漏。所以如果我想复制它,我可以自己把它拆开。但我只需要一个好的例子来知道该怎么做。我看到了一个关于会计信息和交易的示例,但它对我没有帮助,因为我没有添加任何内容。这段代码很混乱。什么是
元素tag1
?在java中,变量从不以大写字母开头。您的错误现在愚弄了stackoverflow的语法highlighter.ElementTag1是我输入的全局变量,在代码中它仍然接受标记。它引用了我定义的xmltag名称。