使用java将每个元素存储在单个文本文件中
我试图创建一个xml树,并将每个元素保存在一个单独的文本文件中,如:-使用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
<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();
}
}
}