java如何把String转换成xml



java如何把String转换成xml 




1、直接拼接字符串,如下
StringBuffer xml = new StringBuffer();
xml.append("<xml>");
xml.append("\r\n");
Iterator<Map.Entry<String, String>> entries = jovalue.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
xml.append("<"+entry.getKey()+">");
xml.append(entry.getValue());
xml.append("</"+entry.getKey()+">");
xml.append("\r\n");
}
xml.append("</xml>");
return xml.toString();
用第三方包:dom4j-1.6.1.jar,示例如下
Document document = DocumentHelper.createDocument();
Element xml = document.addElement("xml");
Iterator<Map.Entry<String, String>> entries = jovalue.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
Element xml_sub = xml.addElement(entry.getKey());
xml_sub.setText(entry.getValue());
}
return document.asXML();

java如何把String转换成xml 20

<a>123</a>
把这个转成一个xml结点
网上说的都是错的,没有一个能够实现
梦幻怪兽  |  浏览 3364 次
推荐于2016-01-05 13:31:18 最佳答案
二种方式:
1、直接拼接字符串,如下
StringBuffer xml = new StringBuffer();
xml.append("<xml>");
xml.append("\r\n");
Iterator<Map.Entry<String, String>> entries = jovalue.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
xml.append("<"+entry.getKey()+">");
xml.append(entry.getValue());
xml.append("</"+entry.getKey()+">");
xml.append("\r\n");
}
xml.append("</xml>");
return xml.toString();
用第三方包:dom4j-1.6.1.jar,示例如下
Document document = DocumentHelper.createDocument();
Element xml = document.addElement("xml");
Iterator<Map.Entry<String, String>> entries = jovalue.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, String> entry = entries.next();
Element xml_sub = xml.addElement(entry.getKey());
xml_sub.setText(entry.getValue());
}
return document.asXML();
Java中,将对象换为XML格式的报文字符串是一个常见的需求,尤其是在进行Web服务调用或数据交换时。这个过程通常涉及到序列化和义,确保XML格式的正确性和数据的安全性。以下是一个简单的介绍: 1. **对象序列化**:首先,需要将Java对象换为一个中间格式(例如DOM、SAX或者更简单的字符串表示),这一步通常通过序列化来完成。序列化是指将对象的状态信息换为可以存储或传输的形式的过程。在Java中,可以使用如JAXB(Java Architecture for XML Binding)这样的库来实现对象到XML的序列化。 2. **义特殊字符**:XML文档中有一些特殊的字符需要义,比如`<`、`>`、`&`等,以防止解析错误。序列化库通常会自动处理这些特殊字符的义。 3. **格式化为字符串**:将序列化后的对象换为字符串格式,这可以通过打印XML文档对象,或者直接从序列化过程中获得字符串表示。 举个例子,使用JAXB进行序列化的大致步骤如下: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import java.io.StringWriter; // 假设有一个Java类User,并且我们有一个User对象user User user = new User("张三", 30); // 创建JAXBContext实例 JAXBContext context = JAXBContext.newInstance(User.class); // 创建Marshaller实例并设置属性,以便生成格式良好的XML字符串 Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // 创建StringWriter来捕获输出 StringWriter sw = new StringWriter(); // 将User对象序列化为XML字符串并写入StringWriter中 marshaller.marshal(user, sw); // 此时,sw.toString()将包含格式化好的XML报文 String xmlString = sw.toString(); ``` 在这个例子中,`User`类是一个普通的Java类,假设已经使用`@XmlRootElement`和`@XmlElement`注解标记了类和它的属性,以指示JAXB如何进行序列化。`marshalling`过程会将`User`对象转换成XML格式的字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值