字符串 转为 xml 格式的字符串

上代码

package com.primeton.btp.JCQS.impl.asl;

import java.io.ByteArrayInputStream;
import java.io.StringReader;
import java.io.StringWriter;

import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class StringToDocumentToString {

	public static void main(String[] args) throws Exception {
		String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?><TXLife><DISTRICT><BankCode>00920000000000</BankCode><Department>00920000000001</Department><InsComCode>1000000</InsComCode></DISTRICT><TXLifeRequest><TransChannel>02</TransChannel><IntTransCode>12103001</IntTransCode><TransExeDate>20230314</TransExeDate><TransExeTime>171004</TransExeTime><OLife><PolTolNum>5</PolTolNum><TolPremAmt>54.44</TolPremAmt><FileContent><PrePolNumber>010007000266319</PrePolNumber><Department>8020400</Department><ClerkCode>015233</ClerkCode><Status>6</Status><PremAmt>10.00</PremAmt></FileContent><FileContent><PrePolNumber>010007000266319</PrePolNumber><Department>8020400</Department><ClerkCode>015233</ClerkCode><Status>6</Status><PremAmt>11.11</PremAmt></FileContent><FileContent><PrePolNumber>010007000266319</PrePolNumber><Department>8020400</Department><ClerkCode>015233</ClerkCode><Status>6</Status><PremAmt>11.11</PremAmt></FileContent></OLife></TXLifeRequest></TXLife>";
		System.out.println(formatXml(xmlStr));
	}

	public static String formatXml(String inputXML) throws Exception {
		String xml = null;
		SAXReader reader = new SAXReader();
		XMLWriter writer = null;
		Document document = reader.read(new StringReader(inputXML));
		try {
			if (document != null) {
				StringWriter stringWriter = new StringWriter();
				OutputFormat format = OutputFormat.createPrettyPrint();
				format.setNewLineAfterDeclaration(false);
				writer = new XMLWriter(stringWriter, format);
				writer.write(document);
				writer.flush();
				xml = stringWriter.getBuffer().toString();
			}
		} finally {
			if (writer != null) {
				try {
					writer.close();

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
		return xml;
	}
}

输入:

	String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?><TXLife><DISTRICT><BankCode>00920000000000</BankCode><Department>00920000000001</Department><InsComCode>1000000</InsComCode></DISTRICT><TXLifeRequest><TransChannel>02</TransChannel><IntTransCode>12103001</IntTransCode><TransExeDate>20230314</TransExeDate><TransExeTime>171004</TransExeTime><OLife><PolTolNum>5</PolTolNum><TolPremAmt>54.44</TolPremAmt><FileContent><PrePolNumber>010007000266319</PrePolNumber><Department>8020400</Department><ClerkCode>015233</ClerkCode><Status>6</Status><PremAmt>10.00</PremAmt></FileContent><FileContent><PrePolNumber>010007000266319</PrePolNumber><Department>8020400</Department><ClerkCode>015233</ClerkCode><Status>6</Status><PremAmt>11.11</PremAmt></FileContent><FileContent><PrePolNumber>010007000266319</PrePolNumber><Department>8020400</Department><ClerkCode>015233</ClerkCode><Status>6</Status><PremAmt>11.11</PremAmt></FileContent></OLife></TXLifeRequest></TXLife>";

运行后输出

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java中的DOM(Document Object Model)库来实现将XML字符串换为XML文档,并且可以更改节点内容。下面是一个示例代码: ```java import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import java.io.IOException; import java.io.StringReader; 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; public class XMLUtils { public static void main(String[] args) { String xmlString = "<root><node1>value1</node1><node2>value2</node2></root>"; String nodeName = "node1"; String nodeValue = "new value"; try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource inputSource = new InputSource(new StringReader(xmlString)); Document doc = builder.parse(inputSource); // Find the node with the given name NodeList nodeList = doc.getElementsByTagName(nodeName); Node node = nodeList.item(0); // Update the node value node.setTextContent(nodeValue); // Convert the updated document to a string TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(System.out); transformer.transform(source, result); } catch (ParserConfigurationException | SAXException | IOException | TransformerException e) { e.printStackTrace(); } } } ``` 在上面的示例中,我们首先定义了一个XML字符串和要更改的节点名称及节点值。然后,我们使用DocumentBuilderFactory和DocumentBuilder对象将XML字符串换为XML文档。接下来,我们使用getElementsByTagName方法查找要更改的节点,并使用setTextContent方法更改节点的值。最后,我们使用TransformerFactory和Transformer对象将更新后的XML文档换回字符串,并将其打印到控制台上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值