我是Java和XML DOM解析器的新手.我有一个要求,比如读取xml数据并存储它的列和行类型的通知.
示例:sample.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
解决方法
由于这看起来像家庭作业,我会给你一些提示:
>您的讲师可能会为您提供有关处理XML DOM的一些讲义和/或示例.再读一遍.
> getElementsByTagName方法将元素名称作为参数. “*”不是有效的元素名称,因此调用不会返回任何内容.
>您的代码需要镜像XML的结构.在这种情况下,XML结构由N个staff元素组成,每个元素包含名为firstname,lastname,nickname和salary的元素.
您的讲师也可能希望您使用XSLT或XML绑定机制来简化此操作. (或者这可能是XMI而不是XML ……其中有其他方法可以处理这个……)
I kept getElementsByTagName method parameter “*” because to read the data dynamically.
好吧,它不起作用!! DOM getElementsByTagName方法不接受任何类型的模式.
如果要使代码通用,则不能使用getElementsByTagName.从DOM的根节点开始,您将需要从顶部遍历树.
Can you please provide me with sample data.
不,你的讲师不会批准我给你复制的代码.但是,我要指出网上有很多XML DOM教程可以帮助你弄清楚你需要做什么.最好的事情是你自己做这项工作.你将学到更多的东西……这就是你作业的重点!