我使用DocumentBuilderFactory创建XML文件,如下所示:如何在Java中创建具有特定结构的XML文件。
我想将结果存储为java字符串,而不是将其保存到文件中。如何实现这一点。
重复:如何转换组织。w3c。多姆。文档对象到字符串?
我建议您阅读关于I/O流的Java文档。具体来说,字符流部分讨论的是Reader
和Writer
类。
正如您在XMLOutputter
JavaDoc中看到的那样,方法output
采用不同的参数。你只需要选择合适的编写器,而不是FileWriter
,例如使用StringWriter
。
但是,XMLOutputter
也有outputString()
方法,可以让您在内部(可能)直接生成一个String来执行该工作。
这个例子可能会帮助你。
import java.io.StringWriter;
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.Document;
import org.w3c.dom.Element;
public class DOMBasicDoc {
public static void main(String args[]) {
try {
String[] input = {"John Doe,123-456-7890", "Bob Smith,123-555-1212"};
String[] line = new String[2];
DocumentBuilderFactory dFact = DocumentBuilderFactory.newInstance();
DocumentBuilder build = dFact.newDocumentBuilder();
Document doc = build.newDocument();
Element root = doc.createElement("root");
doc.appendChild(root);
Element memberList = doc.createElement("members");
root.appendChild(memberList);
for (int i = 0; i < input.length; i++) {
line = input[i].split(",");
Element member = doc.createElement("member");
memberList.appendChild(member);
Element name = doc.createElement("name");
name.appendChild(doc.createTextNode(line[0]));
member.appendChild(name);
Element phone = doc.createElement("phone");
phone.appendChild(doc.createTextNode(line[1]));
member.appendChild(phone);
}
TransformerFactory tFact = TransformerFactory.newInstance();
Transformer trans = tFact.newTransformer();
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
DOMSource source = new DOMSource(doc);
trans.transform(source, result);
System.out.println(writer.toString());
} catch (TransformerException ex) {
System.out.println("Error outputting document");
} catch (ParserConfigurationException ex) {
System.out.println("Error building document");
}
}
}
我想将pandas数据帧保存为csv文件,问题是要将np.array转换为字符串。 我想将数组保存为数组,但在文档中找不到任何有用的内容。 解数独=[123345894324321321](整数列表) n_splits=3(整数) 最终结果应该是: [123 345 894 324 321 321] 1,[123 345 894 324 321 321] 3,[123 345 894 324 32
问题内容: 我有以下代码: 我如何获取它来解析包含在字符串而不是文件中的XML? 问题答案: 我的代码库中有此功能,它应该对你有用。
我有这个。我想创建一个,它保存如下 但是通过这样做 问题是每个现在都保存为。例如,第3行是 对于那些怀疑论者,我尝试了,它是。第2列工作正常。 如何保存为每行,而不是?也就是说,我如何保存所有行的作为而不是?
问题内容: 我有一个格式化的XML文件,我想将其转换为一个行字符串,我该怎么做。 样本XML: 预期产量 提前致谢。 问题答案: 使用StringBuilder比concat更有效http://kaioa.com/node/59
编程相对较新。我想读取一个URL,修改文本字符串,然后将其写入以行分隔的csv文本文件。 阅读 但我无法将相同的字符串写入文件——它只会变成一行(请参阅下面的循环,尝试1) 我想我正在寻找一种方法,在FileWriter或BufferedWriter循环中,将字符串finalDataA转换为数组字符串(即包括字符串后缀[0]),但我还没有找到这样一种方法,不会给出类型“不能”的错误将String转
问题内容: 我想将数据转换为CSV格式的字符串。 通常会用到它,因为它处理所有疯狂的情况(逗号转义,引号转义,CSV方言等)。捕获的结果是期望输出到文件对象,而不是字符串。 我当前的解决方案是此功能有点怪异: 谁能提供一种仍然可以很好地处理边缘情况的更优雅的解决方案? 编辑:这是我最终完成的方式: 问题答案: 您可以使用而不是自己的: 该模块实现了类似文件的类,该类读写字符串缓冲区(也称为内存文件