Java XML解析器-无法获取修改的XML

Java XML解析器-无法获取修改的XML,java,xml-parsing,Java,Xml Parsing,我正在用代码测试一个标准的xml解析器 xml文件是 <? xml version='1.0' encoding='UTF-8'?> <A></A> 。。。由于某种原因,xmlvar值总是 [#文档:空] 虽然我想获取xml本身:(所以我只是想知道为什么它总是空的?以及如何获取内部修改的xml以将其保存到文件?在我的机器上工作-您所说的输出[#文档:空]对于文档上的toString来说是正常的 DocumentBuilderFactory dbf = Doc

我正在用代码测试一个标准的xml解析器

xml文件是

<? xml version='1.0' encoding='UTF-8'?>
<A></A>
。。。由于某种原因,xmlvar值总是

[#文档:空]


虽然我想获取xml本身:(所以我只是想知道为什么它总是空的?以及如何获取内部修改的xml以将其保存到文件?

在我的机器上工作-您所说的输出[#文档:空]对于文档上的toString来说是正常的

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();
ByteArrayInputStream bis = new ByteArrayInputStream(
        "<A></A>".getBytes());
Document doc = db.parse(bis);

Element a = (Element) doc.getElementsByTagName("A").item(0);
Element b = (Element) doc.createElement("B");
b.setAttribute("id", "12345");
a.appendChild(b);

Transformer transformer = TransformerFactory.newInstance()
        .newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

// initialize StreamResult with File object to save to file
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);

String xml = result.getWriter().toString();
System.out.println(xml);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
ByteArrayInputStream bis=新的ByteArrayInputStream(
“”.getBytes());
文档doc=db.parse(bis);
元素a=(元素)doc.getElementsByTagName(“a”)。项(0);
元素b=(元素)doc.createElement(“b”);
b、 setAttribute(“id”、“12345”);
a、 儿童(b);
Transformer Transformer=TransformerFactory.newInstance()
.新变压器();
transformer.setOutputProperty(OutputKeys.INDENT,“是”);
//使用文件对象初始化StreamResult以保存到文件
StreamResult=新的StreamResult(新的StringWriter());
DOMSource=新的DOMSource(doc);
变换(源、结果);
字符串xml=result.getWriter().toString();
System.out.println(xml);

这很好:)但是我如何才能得到一个真正的xml字符串来保存在*.xml文件中呢?我只是想知道你说它为你的机器工作是什么意思?你考过了吗?代码是否生成.getWriter().toString();返回“”?
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();
ByteArrayInputStream bis = new ByteArrayInputStream(
        "<A></A>".getBytes());
Document doc = db.parse(bis);

Element a = (Element) doc.getElementsByTagName("A").item(0);
Element b = (Element) doc.createElement("B");
b.setAttribute("id", "12345");
a.appendChild(b);

Transformer transformer = TransformerFactory.newInstance()
        .newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

// initialize StreamResult with File object to save to file
StreamResult result = new StreamResult(new StringWriter());
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);

String xml = result.getWriter().toString();
System.out.println(xml);