请问java中怎么将生成的XML转化为字符串?

最近在用做关于XML的工作,现在XML的DOC已经生成完毕,利用下面语句:StreamResultstreamResult=newStreamResult(file);S... 最近在用做关于XML的工作,现在XML的DOC已经生成完毕,利用下面语句:
StreamResult streamResult = new StreamResult(file);
Source inputSource = new DOMSource(doc);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(inputSource, streamResult);
可以成功的将XML生成到本地file文件中,我想问一下,怎么能让生成的XML直接生成到一个字符串中,还请高人指点。
看来我还是没说明白:
我想生成XML之后直接存储到字符串中,而不是先存储到文件中再从文件中读取。
Document是DOM类型的。
展开
 我来答
lzj203355
2008-11-20 · TA获得超过2022个赞
知道小有建树答主
回答量:3147
采纳率:100%
帮助的人:1004万
展开全部
此方法传入文件名即可获得对象
-------------------------------------------
import java.beans.XMLDecoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;

public class ReadXml {
public static Object getXml(String path){
File file=new File(path);
FileInputStream fileInputStream;
Object object=null;
try {
fileInputStream = new FileInputStream(file);
XMLDecoder decoder=new XMLDecoder(fileInputStream);
object=decoder.readObject();

fileInputStream.close();
decoder.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return object;
}
}
---------------------------------------------------------------------
如果不可以 用这个写的方式 直接写对象到XML里 此方法需传入对象和写入路径

mport java.beans.XMLEncoder;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteXml {
public static void setXml(Object o,String fileName){
File file=new File(fileName);

try {
FileOutputStream fileOutputStream=new FileOutputStream(file);
XMLEncoder encoder=new XMLEncoder(fileOutputStream);
encoder.writeObject(o);
encoder.flush();
encoder.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击65步自动完成vlookup匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
校宏盛00
2008-11-20 · TA获得超过638个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:268万
展开全部
我想问一下你的Document是什么类型的?如果是org.dom4j.Document的话,你可以Document doc = ...;String str = doc.asXML();可以直接利用asXML()这个方法!其实的话就不清楚了!还得查下!

=========================
还是没有查到!好像org.w3c.dom不提供这个方法!也可能是我没弄对!在或者只能先存入文件,然后读取...囧~~
不过楼主为什么要用org.w3c.dom不用org.dom4j,一般说来现在比较公认dom4j是相对方便的!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sumingxu
2008-11-20 · 超过42用户采纳过TA的回答
知道答主
回答量:247
采纳率:0%
帮助的人:140万
展开全部
我贴一段解析xml代码你参考下

import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;

public class Parsmx{
public static void main(String[] args){
try{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder buld = dbf.newDocumentBuilder();
Document doc = buld.parse(new File("smx.xml"));
Element root = doc.getDocumentElement();
System.out.println("根节点标记名 :"+root.getTagName());
System.out.println("*************下面遍历XML元素****************");

NodeList list2 = root.getElementsByTagName("title");
Element title22Element = (Element)list2.item(0);
String titie2 = title22Element.getFirstChild().getNodeValue();
System.out.println(titie2+":");

NodeList list = root.getElementsByTagName("man");
Element sssElement = (Element)list.item(0);
String sss = sssElement.getFirstChild().getNodeValue().trim();
System.out.println("sss"+sss+"sss");

for(int i=0;i < list.getLength();i++){
Element element = (Element)list.item(i);
String id = element.getAttribute("id");

NodeList nameList = element.getElementsByTagName("name");
Element titleElement = (Element)nameList.item(0);
String name = titleElement.getFirstChild().getNodeValue();

NodeList ageList = element.getElementsByTagName("age");
Element tElement = (Element)nameList.item(0);
String age = titleElement.getFirstChild().getNodeValue();

NodeList eList = element.getElementsByTagName("email");
Element tiElement = (Element)nameList.item(0);
String email = titleElement.getFirstChild().getNodeValue();

System.out.println("ID :" + id + " " + "name :" + name + " " + "age :" + age+" "+"email :"+email);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seasypsky
2008-11-20 · TA获得超过172个赞
知道答主
回答量:114
采纳率:0%
帮助的人:43.3万
展开全部
javax.xml.parsers.DocumentBuilderFactory dbf;
javax.xml.parsers.DocumentBuilder db;
dbf = DocumentBuilderFactory.newInstance();
db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc = db.parse(new FileInputStream(xxxx.xml));
org.w3c.dom.Element rootElement = doc.getDocumentElement();
org.w3c.dom.NodeList nodeList = rootElement.getElementsByTagName("your node");
org.w3c.dom.Node node = (Element) nodeList.item(0);
String s = node.getElementsByTagName("your node").item(0).getFirstChild();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果茶樱被玩中0c
2008-11-20
知道答主
回答量:26
采纳率:0%
帮助的人:4.8万
展开全部
String a="A4_5";
String b="A4";
if(a.indexOf(b)!=-1)
{
System.out.println("存在");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式