-->

如何修改DOM解析器XML数据(How to modify XML data in Dom pars

2019-06-26 13:29发布

我在Java的新的工作和XML DOM解析器。 我有一个像读取XML数据并将其存储通知栏和行类型的要求。 例如:sample.xml中的文件

<staff>
        <firstname>Swetha</firstname>
        <lastname>EUnis</lastname>
        <nickname>Swetha</nickname>
        <salary>10000</salary>
    </staff>
    <staff>
        <firstname>John</firstname>
        <lastname>MAdiv</lastname>
        <nickname>Jo</nickname>
        <salary>200000</salary>
    </staff>

我需要阅读这个XML文件,并将其存储在上面的格式:

firstName,lastName,nickName,Salary
swetha,Eunis,swetha,10000
john,MAdiv,Jo,200000

Java代码:

NodeList nl= doc.getElementsByTagName("*");

        for(int i=0;i< nl.getLength();i++)
        {
            Element section = (Element) nl.item(i);

             Node title = section.getFirstChild();
              while (title != null && title.getNodeType() != Node.ELEMENT_NODE)
              {
                   title = title.getNextSibling();
                if (title != null)
              {
                String first=title.getFirstChild().getNodeValue().trim();
                    if(first!=null)
                    {
                        title = title.getNextSibling();
                    }
                System.out.print(first + ",");
               } }
              System.out.println("");
        }//for

我做了上面的代码,但我不能够找到让上面列和行格式的数据的方式。 任何一个可以请请您帮我解决我的问题,我期待到它从过去的许多天

Answer 1:

因为这看起来像功课,我去给你一些提示:

  • 机会是你的讲师给你一些讲义和/或实例上处理一个XML DOM。 再次阅读它们。

  • 所述getElementsByTagName方法需要一个元素名称作为参数。 "*"不是一个有效的元素名称,所以调用不会返回任何内容。

  • 你的代码需要反映XML的结构。 在此情况下的XML结构由N的staff的元件,其中每个都包含命名元素firstnamelastnamenicknamesalary


它也可能是您的讲师希望你使用像XSLT或XML绑定机制对此进行简化。 (或者,也许这意在XMI,而不是XML ......其中还有其他的方法来处理这个......)


我不停的getElementsByTagName方法参数“*”,因为动态读取数据。

好了, 这是行不通的 ! 该DOM getElementsByTagName方法不接受任何形式的格局。

如果你想使你的代码通用的,你不能使用getElementsByTagName 。 您将需要从上面走的树,开始与DOM的根结点。

能否请您为我提供的样本数据。

不可以。您的讲师不会批准我给你的代码中复制。 不过,我会指出,有大量的XML DOM教程的网站应该帮助你找出你需要做什么上。 最好的事情是你自己做的工作。 你会学到更多的方式...这是你的家庭作业的整点!



Answer 2:

1. DOM Parser将解析整个XML file创建DOM object

2.你将永远需要知道输出的类型和XML的结构时传回的请求是在网络服务被解雇。

3.与它不是被从WebService,这将是动态返回答复的XML结构,但child elements值和属性可以是动态的。

4.您将需要处理与此动态行为try/catch block ...

有关DOM解析器进一步详情,请参阅本网站...

http://tutorials.jenkov.com/java-xml/dom.html



文章来源: How to modify XML data in Dom parser