Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 读取XML文件并将其打印到控制台_Java_Xml - Fatal编程技术网

Java 读取XML文件并将其打印到控制台

Java 读取XML文件并将其打印到控制台,java,xml,Java,Xml,我需要从我创建的xml文件中打印出一些属性 到目前为止,我受到MKyoung的启发,在他的作品中做了一些改变。但是我无法获取xml属性。我想把“”中的名字和分数打印出来 我的代码是: public void readXMLFile(){ 试一试{ File fXmlFile=新文件(“highscore.xml”); DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder d

我需要从我创建的xml文件中打印出一些属性

到目前为止,我受到MKyoung的启发,在他的作品中做了一些改变。但是我无法获取xml属性。我想把“”中的名字和分数打印出来


我的代码是:

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
作为柜台。非常感谢!