gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:32:18 25 4
gpt4 key购买 nike

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

<product>
<product_id value="1">
<tab_id value ="3" />
</product_id>
</product>

将以上内容另存为1.txt并且:

<product>
<product_id value="2">
<tab_id value ="5" />
</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();
}
}
}

我的问题是如何在单独的文本文件中单独处理所有元素?谢谢。

最佳答案

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

大致如下:

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();
}
}
}

关于java - 使用 java 将每个元素存储在单独的文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16771005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com