Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.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 带if语句的for循环中的stringbuilder_Java_String_Stringbuilder_Xmlreader - Fatal编程技术网

Java 带if语句的for循环中的stringbuilder

Java 带if语句的for循环中的stringbuilder,java,string,stringbuilder,xmlreader,Java,String,Stringbuilder,Xmlreader,我的java程序有问题,它读取我的xml文件并显示我想要的内容。。。。我有3行在那里,它显示了System.out.println和这3行我想从中获得的具体内容 但我必须以字符串的形式逐行返回这些值。这是我的另一个类中的问题,在这个类中,我使用的返回字符串仅是xml文件的第一行。因此,我认为返回值和for循环有问题。 这是我的java程序代码,它与system.out.println一起工作 package org.java_websocket.xmlreader; import javax.

我的java程序有问题,它读取我的xml文件并显示我想要的内容。。。。我有3行在那里,它显示了System.out.println和这3行我想从中获得的具体内容

但我必须以字符串的形式逐行返回这些值。这是我的另一个类中的问题,在这个类中,我使用的返回字符串仅是xml文件的第一行。因此,我认为返回值和for循环有问题。 这是我的java程序代码,它与system.out.println一起工作

package org.java_websocket.xmlreader;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import java.io.File;

public class websocketxmlrader {
     public static void main(String argv[]){

            try {

            File fXmlFile = new File("...test123.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(fXmlFile);


            doc.getDocumentElement().normalize();


            NodeList nList = doc.getElementsByTagName("item");

            for (int temp = 0; temp < nList.getLength(); temp++) {

                Node nNode = nList.item(temp);


                if (nNode.getNodeType() == Node.ELEMENT_NODE) {

                    Element eElement = (Element) nNode;

                    String s1 = "{\"art.\":1234,";
                    String s2 = "\"value\":5678,";
                    String s3 = "\"set\":null,";
                    String s4 = "\"condition\":" + eElement.getElementsByTagName("length").item(0).getTextContent();
                    String s5=  "\"height\"" + eElement.getElementsByTagName("weight").item(0).getTextContent();
                    String s6= "\"average\":5678,";
                    String s7= "\"content\":12,";
                    String s8= "\"div.\":78}";
                    String s = s1+s2+s3+s4+","+s5+","+s6+s7+s8;
                    System.out.println(s);

                }
            }
            } catch (Exception e) {
            e.printStackTrace();
            }
          }


}
package org.java_websocket.xmlreader;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.parsers.DocumentBuilder;
导入org.w3c.dom.Document;
导入org.w3c.dom.NodeList;
导入org.w3c.dom.Node;
导入org.w3c.dom.Element;
导入java.io.File;
公共类websocketxmlrader{
公共静态void main(字符串argv[]){
试一试{
File fXmlFile=新文件(“…test123.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList=doc.getElementsByTagName(“项目”);
对于(int-temp=0;temp
这是我从字符串中创建返回值的文件

我在这里将publicstaticvoidmain(字符串argv[]){….更改为..publicstringwert(){

以下是完整的代码
包装袋;
导入java.io.File;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
公共类websocketxmlrader{
公共字符串wert(){
试一试{
File fXmlFile=新文件(“…test123.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList=doc.getElementsByTagName(“项目”);
对于(int-temp=0;temp
我如何在这里使用Stringbuilder我认为这将解决问题。 因为返回字符串还应该循环遍历xml文件中的每一行,而不仅仅是从第一行返回字符串


谢谢!

如果您找到一个
返回值,您将离开该方法。因此,如果您找到一个类型为
node.ELEMENT\u node
的节点,您将构建
字符串s
,返回该值并离开该方法

您可以添加换行符而不是返回值,或者(如果允许更改返回类型)使用
List
并将每行
s
添加到列表中

StringBuild sb = new StringBuilder(); // with linebreaks
List<String> lines = new ArrayList<>(); // each line one entry
for (int temp = 0; temp < nList.getLength(); temp++) {
    Node nNode = nList.item(temp);
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        String s = ...;
        if (sb.length() > 0) // add linebreak
            sb.append(System.getProperty("line.separator"));
        sb.append(s);
        lines.add(s);
    }
}
StringBuild sb=new StringBuilder();//带换行符
List lines=new ArrayList();//每行一个条目
对于(int-temp=0;temp0)//添加换行符
sb.append(System.getProperty(“line.separator”);
某人追加;
行。添加(s);
}
}

如果您找到一个
返回值
您将离开该方法。因此,如果您找到一个类型为
node.ELEMENT\u node
的节点,您将构建
字符串s
,返回该值并离开该方法

您可以添加换行符而不是返回值,或者(如果允许更改返回类型)使用
List
并将每行
s
添加到列表中

StringBuild sb = new StringBuilder(); // with linebreaks
List<String> lines = new ArrayList<>(); // each line one entry
for (int temp = 0; temp < nList.getLength(); temp++) {
    Node nNode = nList.item(temp);
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        String s = ...;
        if (sb.length() > 0) // add linebreak
            sb.append(System.getProperty("line.separator"));
        sb.append(s);
        lines.add(s);
    }
}
StringBuild sb=new StringBuilder();//带换行符
List lines=new ArrayList();//每行一个条目
对于(int-temp=0;temp