请问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类型的。 展开
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类型的。 展开
5个回答
展开全部
此方法传入文件名即可获得对象
-------------------------------------------
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();
}
}
}
-------------------------------------------
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();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想问一下你的Document是什么类型的?如果是org.dom4j.Document的话,你可以Document doc = ...;String str = doc.asXML();可以直接利用asXML()这个方法!其实的话就不清楚了!还得查下!
=========================
还是没有查到!好像org.w3c.dom不提供这个方法!也可能是我没弄对!在或者只能先存入文件,然后读取...囧~~
不过楼主为什么要用org.w3c.dom不用org.dom4j,一般说来现在比较公认dom4j是相对方便的!
=========================
还是没有查到!好像org.w3c.dom不提供这个方法!也可能是我没弄对!在或者只能先存入文件,然后读取...囧~~
不过楼主为什么要用org.w3c.dom不用org.dom4j,一般说来现在比较公认dom4j是相对方便的!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我贴一段解析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();
}
}
}
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();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String a="A4_5";
String b="A4";
if(a.indexOf(b)!=-1)
{
System.out.println("存在");
}
String b="A4";
if(a.indexOf(b)!=-1)
{
System.out.println("存在");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询