转义是不行的 ,借助于Dom4j的addCDATA()可以 Document document = DocumentHelper.createDocument(); Element p = document.addElement("person"); Element name = p.addCDATA("Headfffsend是"); <person> <![CDATA[Headfffsend是]]> </person>
最简单办法读取时候 "<"+rs.getString(1)+">"
可以有两种解决方法: 一、 通过Xml Document对象得到XML字符串返回给客户端,不能直接把XmlDocument返回给客户端,因为Java中的Xml Document对象,别的语言是无法正确解释的,我们只能返回XML 字符串: public String getAllNewSpace() { Document document = DocumentHelper.createDocument(); Element root=document.addElement("root"); ………………………… if (null != dataset) { while (dataset.next()) { Element user=root.addElement("User"); Element userName=user.addElement("UserName"); userName.setText(dataset.getString(1)); Element userId=user.addElement("UserId"); userId.setText (dataset.getString(2)); } } return document.asXML(); } 二、 给XML 字符串添加DTD验证:在节点值部份添加“<![CDATA[ ]]” public String getAllNewSpace() { StringBuffer toClient = new StringBuffer("<root>"); ………………………… if (null != dataset) { while (dataset.next()) { toClient.append("<User>"); toClient.append("<UserName><![CDATA["); toClient.append(dataset.getString(1)); toClient.append("]]</UserName>"); toClient.append("<UserId>"); toClient.append(dataset.getString(2)); toClient.append("</UserId>"); toClient.append("</User>"); } } toClient.append("</root>"); return toClient.toString(); }
直接用<>组成字符串就行了.
public void gepro(List list,String path) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.newDocument(); try { //Connection con = new JdbcOdbc().getConnection(); //PreparedStatement ps1 = con.prepareStatement("select * from baoxiu"); //ResultSet rs1 = ps1.executeQuery(); NewsBean kehu = new NewsBean(); Element news = doc.createElement("news"); for (int i = 0; i < list.size(); i++) { kehu = (NewsBean) list.get(i); Element item=doc.createElement("item"); Element title=doc.createElement("title"); Element summary=doc.createElement("summary"); title.appendChild(doc.createTextNode(kehu.getKeywords())); summary.appendChild(doc.createTextNode("<[CDATA["+kehu.getTitle()+"]]>")); item.appendChild(title); item.appendChild(summary); news.appendChild(item); } doc.appendChild(news); TransformerFactory tff = TransformerFactory.newInstance(); Transformer tformer = tff.newTransformer(); tformer.transform(new DOMSource(doc), new StreamResult(path)); tff=null; tformer=null; } catch (Exception e) { System.out.println(e.getMessage()); } } 这是我完整代码 但是summary.appendChild(doc.createTextNode("<[CDATA["+kehu.getTitle()+"]]>")); 这里面的<>无法生成,按楼上的那些方法还是不行,谁能给我完整的代码看看。
借助于Dom4j的addCDATA()可以 Document document = DocumentHelper.createDocument(); Element p = document.addElement("person"); Element name = p.addCDATA("Headfffsend是"); <person> <![CDATA[Hea……
文件的话,直接创建节点就可以了,DOM会自动在内存中给你加上的
字符串的话 你可以同html语言进行转义
<123>
</html>
我是这样写的,生成的XML里就出现<和>这两个符号
如何处理啊?
,借助于Dom4j的addCDATA()可以
Document document = DocumentHelper.createDocument();
Element p = document.addElement("person");
Element name = p.addCDATA("Headfffsend是");
<person>
<![CDATA[Headfffsend是]]>
</person>
"<"+rs.getString(1)+">"
可以有两种解决方法:
一、 通过Xml Document对象得到XML字符串返回给客户端,不能直接把XmlDocument返回给客户端,因为Java中的Xml Document对象,别的语言是无法正确解释的,我们只能返回XML 字符串:
public String getAllNewSpace() {
Document document = DocumentHelper.createDocument();
Element root=document.addElement("root");
…………………………
if (null != dataset) {
while (dataset.next()) {
Element user=root.addElement("User");
Element userName=user.addElement("UserName");
userName.setText(dataset.getString(1));
Element userId=user.addElement("UserId");
userId.setText (dataset.getString(2));
}
}
return document.asXML();
}
二、 给XML 字符串添加DTD验证:在节点值部份添加“<![CDATA[ ]]”
public String getAllNewSpace() {
StringBuffer toClient = new StringBuffer("<root>");
…………………………
if (null != dataset) {
while (dataset.next()) {
toClient.append("<User>");
toClient.append("<UserName><![CDATA[");
toClient.append(dataset.getString(1));
toClient.append("]]</UserName>");
toClient.append("<UserId>");
toClient.append(dataset.getString(2));
toClient.append("</UserId>");
toClient.append("</User>");
}
}
toClient.append("</root>");
return toClient.toString();
}
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
try {
//Connection con = new JdbcOdbc().getConnection();
//PreparedStatement ps1 = con.prepareStatement("select * from baoxiu");
//ResultSet rs1 = ps1.executeQuery();
NewsBean kehu = new NewsBean();
Element news = doc.createElement("news");
for (int i = 0; i < list.size(); i++) {
kehu = (NewsBean) list.get(i);
Element item=doc.createElement("item");
Element title=doc.createElement("title");
Element summary=doc.createElement("summary");
title.appendChild(doc.createTextNode(kehu.getKeywords()));
summary.appendChild(doc.createTextNode("<[CDATA["+kehu.getTitle()+"]]>")); item.appendChild(title);
item.appendChild(summary);
news.appendChild(item);
}
doc.appendChild(news);
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tformer = tff.newTransformer();
tformer.transform(new DOMSource(doc), new StreamResult(path));
tff=null;
tformer=null;
} catch (Exception e) {
System.out.println(e.getMessage());
} }
这是我完整代码
但是summary.appendChild(doc.createTextNode("<[CDATA["+kehu.getTitle()+"]]>"));
这里面的<>无法生成,按楼上的那些方法还是不行,谁能给我完整的代码看看。
import java.util.List;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;
import org.w3c.dom.Element;public class Dom4jTest { public static void main(String[] args) {
List<NewsBean> list = new ArrayList<NewsBean>();
list.add(new NewsBean("南非","显黑马本色"));
list.add(new NewsBean("墨西哥","马克斯救主"));
list.add(new NewsBean("乌拉圭","弗兰独木难支"));
list.add(new NewsBean("法国","无齐达内沦为欧洲二流"));
try {
gepro(list, "d:/1.xml");
} catch (Exception e) {
e.printStackTrace();
}
} public static void gepro(List<NewsBean> list, String path) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
try {
// Connection con = new JdbcOdbc().getConnection();
// PreparedStatement ps1 =
// con.prepareStatement("select * from baoxiu");
// ResultSet rs1 = ps1.executeQuery();
NewsBean kehu ;
Element news = doc.createElement("news");
for (int i = 0; i < list.size(); i++) {
kehu = (NewsBean) list.get(i);
Element item = doc.createElement("item");
Element title = doc.createElement("title");
Element summary = doc.createElement("summary"); title.appendChild(doc.createTextNode(kehu.getKeywords()));
summary.appendChild(doc.createTextNode("<[CDATA["
+ kehu.getTitle() + "]]>")); item.appendChild(title);
item.appendChild(summary);
news.appendChild(item);
}
doc.appendChild(news);
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tformer = tff.newTransformer();
tformer.transform(new DOMSource(doc), new StreamResult(path));
tff = null;
tformer = null;
} catch (Exception e) {
System.out.println(e.getMessage());
} }}
package com.xuz.csdn.worldcup.day2;public class NewsBean {
private String keywords;
private String title;
public NewsBean(String keywords,String title){
this.keywords = keywords;
this.title = title;
} public String getKeywords() {
return keywords;
} public void setKeywords(String keyWords) {
this.keywords = keyWords;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <news>
- <item>
<title>南非</title>
<summary><[CDATA[显黑马本色]]></summary>
</item>
- <item>
<title>墨西哥</title>
<summary><[CDATA[马克斯救主]]></summary>
</item>
- <item>
<title>乌拉圭</title>
<summary><[CDATA[弗兰独木难支]]></summary>
</item>
- <item>
<title>法国</title>
<summary><[CDATA[无齐达内沦为欧洲二流]]></summary>
</item>
</news>没有问题啊楼主
+ kehu.getTitle() + "]]>"));少了个!
Document document = DocumentHelper.createDocument();
Element p = document.addElement("person");
Element name = p.addCDATA("Headfffsend是");
<person>
<![CDATA[Hea……