Java 读取XML文件并将其打印到控制台
我需要从我创建的xml文件中打印出一些属性 到目前为止,我受到MKyoung的启发,在他的作品中做了一些改变。但是我无法获取xml属性。我想把“”中的名字和分数打印出来Java 读取XML文件并将其打印到控制台,java,xml,Java,Xml,我需要从我创建的xml文件中打印出一些属性 到目前为止,我受到MKyoung的启发,在他的作品中做了一些改变。但是我无法获取xml属性。我想把“”中的名字和分数打印出来 我的代码是: public void readXMLFile(){ 试一试{ File fXmlFile=新文件(“highscore.xml”); DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder d
我的代码是:
public void readXMLFile(){
试一试{
File fXmlFile=新文件(“highscore.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(fXmlFile);
//可选,但推荐
//请阅读以下内容-http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();
System.out.println(“根元素:+doc.getDocumentElement().getNodeName());
NodeList nList=doc.getElementsByTagName(“高分”);
System.out.println(“-------------------------------”;
对于(int-temp=0;temp
我的xml文件highscore.xml包含以下内容:
您可以使用像简单xml这样的开源库
private Serializer serializer = new Persister();
// Reading
(YOUROBJECT) serializer.read(YOUROBJECT.class, new File(path));
// Writing
serializer.write(YOUROBJECT, file);
我通过添加两行编辑了您的代码。检查下面。基本上,您必须迭代下一级节点 代码:
Root element : Highscore
----------------------------
1,Rasmus,10000
2,Søren,6000
3,Niclas,5000
public void readXMLFile(){
试一试{
File fXmlFile=新文件(“highscore.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println(“根元素:+doc.getDocumentElement().getNodeName());
NodeList nList=doc.getElementsByTagName(“高分”);
节点子节点=nList.item(0);
NodeList nL=child.getChildNodes();
System.out.println(“-------------------------------”;
int i=1;
对于(int-temp=0;temp
输出:
Root element : Highscore
----------------------------
1,Rasmus,10000
2,Søren,6000
3,Niclas,5000
但是,这会使我能够将属性得分打印到控制台吗?您必须迭代下一级节点。请像这样检查你们!如果我只想看分数而不是文字?我试图让高分列表计数,所以它说1。“Name”“Score”,下一个是2。“姓名”“分数”?因为如果我使用计数器temp,那么它会计算#文本also@NiclasJohansen,请检查更新的答案和输出。我用了
I
作为柜台。非常感谢!