【问题标题】:Converting XML doc to String将 XML 文档转换为字符串
【发布时间】:2012-04-12 09:54:13
【问题描述】:

我正在使用以下代码更改 xml 文档:

DocumentBuilderFactory fty1 = DocumentBuilderFactory.newInstance();
   fty1.setNamespaceAware(true);
   DocumentBuilder builder1 = fty1.newDocumentBuilder();
   ByteArrayInputStream bais1 = new ByteArrayInputStream(tr1.getBytes());//tr1=xml string
   Document xmldoc1=builder1.parse(bais1);
   xmldoc1.getElementsByTagName("userID").item(0).setTextContent("123123132");


xmldoc1 包含更改后的表单。现在如何将其转换为字符串,以便将新文件传递给其他人。

【问题讨论】:

    标签: java xml


    【解决方案1】:
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");        
    StringWriter sw = new StringWriter();
    StreamResult result = new StreamResult(sw);
    DOMSource source = new DOMSource(xmldoc1);
    transformer.transform(source, result);
    String xmlString = sw.toString();
    

    【讨论】:

    • Khm... 那是 XSLT 代码 :) 如果包含初始化 trans 的行会更明显。这家伙真的应该自己用谷歌搜索。比如this one here真的不难找。
    • @Phani:谢谢。但是有一点不同。在新的 xml 字符串中,已设置内容的元素将进入新行。这可能会创建一个不同的签名(我使用 xml 签名)。为什么会这样?
    • @MarkoTopolnik 根据 StackOverflow 的建议,如果没有找到,我们应该搜索问题,然后我们应该报告。但仍然有相同的问题被重复。很少引用:stackoverflow.com/questions/5502526/…
    • @Ashwin 那是因为在第二行缩进,去掉那行就正常了。
    • @Phani:我还有一个疑问。在这个转换过程中,原始文件是这样复制到字符串中的吗?因为转换后新的 xml 字符串是混乱的。我的意思是属性很混乱。
    猜你喜欢
    • 2010-11-20
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多