Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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将每个元素存储在单个文本文件中_Java_Xml - Fatal编程技术网

使用java将每个元素存储在单个文本文件中

使用java将每个元素存储在单个文本文件中,java,xml,Java,Xml,我试图创建一个xml树,并将每个元素保存在一个单独的文本文件中,如:- <product> <product_id value="1"> <tab_id value ="3" /> </product_id> </product> 将以上内容另存为2.txt 我正在尝试:- package ep; import java.io.File; import java.util.Random; import javax.xml

我试图创建一个xml树,并将每个元素保存在一个单独的文本文件中,如:-

<product>
 <product_id value="1">
   <tab_id value ="3" />
 </product_id>
</product>
将以上内容另存为
2.txt

我正在尝试:-

package ep;

import java.io.File;
import java.util.Random;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class Tclass {

    public static void main(String argv[]) {

        try {

            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

        // root elements
        Document doc = docBuilder.newDocument();
        Element rootElement = doc.createElement("products");
        doc.appendChild(rootElement);
        int a = 351;
        Random rand = new Random(); 
        int maximum = 5;
        int minimum = 2;
        int range = maximum - minimum + 1;

        for(int x = 1; x < 3; x = x+1)
        {
            // staff elements
            Element staff = doc.createElement("product_id");
            rootElement.appendChild(staff);

            // shorten way
            staff.setAttribute("value", ""+x);

            Element tab_id = doc.createElement("tab_id");
            staff.appendChild(tab_id);

            int randomNum =  rand.nextInt(range) + minimum;     
            // shorten way
            tab_id.setAttribute("value", ""+randomNum);

        } 
        // write the content into xml file
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File("file.xml"));

        // Output to console for testing
        // StreamResult result = new StreamResult(System.out);

        transformer.transform(source, result);

        System.out.println("File saved!");

        } catch (ParserConfigurationException pce) {
          pce.printStackTrace();
        } catch (TransformerException tfe) {
          tfe.printStackTrace();
        }
    }
}
封装ep;
导入java.io.File;
导入java.util.Random;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.parsers.parserConfiguration异常;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerException;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.dom.DOMSource;
导入javax.xml.transform.stream.StreamResult;
导入org.w3c.dom.Attr;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
公共类Tclass{
公共静态void main(字符串argv[]){
试一试{
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
//根元素
Document doc=docBuilder.newDocument();
Element rootElement=doc.createElement(“产品”);
doc.appendChild(rootElement);
INTA=351;
Random rand=新的Random();
int最大值=5;
int最小值=2;
整数范围=最大值-最小值+1;
对于(int x=1;x<3;x=x+1)
{
//工作人员
元素职员=doc.createElement(“产品标识”);
根元素.appendChild(staff);
//缩短道路
staff.setAttribute(“值”、“+x”);
元素tab_id=doc.createElement(“tab_id”);
staff.appendChild(选项卡id);
int randomNum=随机数nextInt(范围)+最小值;
//缩短道路
tab_id.setAttribute(“值”,“随机数”);
} 
//将内容写入xml文件
TransformerFactory TransformerFactory=TransformerFactory.newInstance();
Transformer Transformer=transformerFactory.newTransformer();
DOMSource=新的DOMSource(doc);
StreamResult=newstreamresult(新文件(“File.xml”);
//输出到控制台进行测试
//StreamResult结果=新的StreamResult(System.out);
变换(源、结果);
System.out.println(“文件已保存!”);
}捕获(ParserConfiguration异常pce){
pce.printStackTrace();
}捕获(TransformerException tfe){
tfe.printStackTrace();
}
}
}

我的问题是如何在一个单独的文本文件中分别执行所有元素?谢谢。

如果要为每个产品保存不同的文本文件,需要为每个文档创建一个文档,并将此代码集成到循环中

大致如下:

public class Tclass {

    public static void main(String argv[]) {

        try {

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

        for(int x = 1; x < 3; x = x+1)
        {

           // root elements
            Document doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("product");
            doc.appendChild(rootElement);
            int a = 351;
            Random rand = new Random(); 
            int maximum = 5;
            int minimum = 2;
            int range = maximum - minimum + 1;

            // staff elements
            Element staff = doc.createElement("product_id");
            rootElement.appendChild(staff);

            // shorten way
            staff.setAttribute("value", ""+x);

            Element tab_id = doc.createElement("tab_id");
            staff.appendChild(tab_id);

            int randomNum =  rand.nextInt(range) + minimum;     
            // shorten way
            tab_id.setAttribute("value", ""+randomNum);



// write the content into xml file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File("file"+x+".xml"));

            // Output to console for testing
            // StreamResult result = new StreamResult(System.out);

            transformer.transform(source, result);

            System.out.println("File saved!");

        } 


        } catch (ParserConfigurationException pce) {
          pce.printStackTrace();
        } catch (TransformerException tfe) {
          tfe.printStackTrace();
        }
    }
}
公共类Tclass{
公共静态void main(字符串argv[]){
试一试{
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
对于(int x=1;x<3;x=x+1)
{
//根元素
Document doc=docBuilder.newDocument();
Element rootElement=doc.createElement(“产品”);
doc.appendChild(rootElement);
INTA=351;
Random rand=新的Random();
int最大值=5;
int最小值=2;
整数范围=最大值-最小值+1;
//工作人员
元素职员=doc.createElement(“产品标识”);
根元素.appendChild(staff);
//缩短道路
staff.setAttribute(“值”、“+x”);
元素tab_id=doc.createElement(“tab_id”);
staff.appendChild(选项卡id);
int randomNum=随机数nextInt(范围)+最小值;
//缩短道路
tab_id.setAttribute(“值”,“随机数”);
//将内容写入xml文件
TransformerFactory TransformerFactory=TransformerFactory.newInstance();
Transformer Transformer=transformerFactory.newTransformer();
DOMSource=新的DOMSource(doc);
StreamResult=newstreamresult(新文件(“文件”+x+“.xml”);
//输出到控制台进行测试
//StreamResult结果=新的StreamResult(System.out);
变换(源、结果);
System.out.println(“文件已保存!”);
} 
}捕获(ParserConfiguration异常pce){
pce.printStackTrace();
}捕获(TransformerException tfe){
tfe.printStackTrace();
}
}
}

为每个文档使用一个
文档
。我有一个文本文件:-内容
5,6,7,8,9,12
如何读取此文件并使用此数字随机复制?
public class Tclass {

    public static void main(String argv[]) {

        try {

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

        for(int x = 1; x < 3; x = x+1)
        {

           // root elements
            Document doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("product");
            doc.appendChild(rootElement);
            int a = 351;
            Random rand = new Random(); 
            int maximum = 5;
            int minimum = 2;
            int range = maximum - minimum + 1;

            // staff elements
            Element staff = doc.createElement("product_id");
            rootElement.appendChild(staff);

            // shorten way
            staff.setAttribute("value", ""+x);

            Element tab_id = doc.createElement("tab_id");
            staff.appendChild(tab_id);

            int randomNum =  rand.nextInt(range) + minimum;     
            // shorten way
            tab_id.setAttribute("value", ""+randomNum);



// write the content into xml file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File("file"+x+".xml"));

            // Output to console for testing
            // StreamResult result = new StreamResult(System.out);

            transformer.transform(source, result);

            System.out.println("File saved!");

        } 


        } catch (ParserConfigurationException pce) {
          pce.printStackTrace();
        } catch (TransformerException tfe) {
          tfe.printStackTrace();
        }
    }
}