java生成XML时怎样才能分别输出<和>这两个符号,先谢谢了

解决方案 »

  1.   

    你生成的文件还是字符串啊?
    文件的话,直接创建节点就可以了,DOM会自动在内存中给你加上的
    字符串的话 你可以同html语言进行转义
      

  2.   

    <html>
    &lt;123&gt;
    </html>
      

  3.   

    buyName.appendChild(doc.createTextNode("<"+res.getString("ces")+">"));
    我是这样写的,生成的XML里就出现&lt;和&gt;这两个符号
    如何处理啊?
      

  4.   

    我要生成<![CDATA[卧室的装修通常比较简单,布艺窗帘在卧室往往能够更突出发挥其装饰或者掩饰的功能。]]>这样的内容。麻烦大家指点下
      

  5.   

    这里有例子:自己看,是英文的http://apicode.gicp.net/
      

  6.   

    转义是不行的
    ,借助于Dom4j的addCDATA()可以
    Document  document = DocumentHelper.createDocument();
    Element p = document.addElement("person");
    Element name = p.addCDATA("Headfffsend是");
      <person>
       <![CDATA[Headfffsend是]]>
      </person>
      

  7.   

    最简单办法读取时候
    "<"+rs.getString(1)+">"
      

  8.   


    可以有两种解决方法:
    一、    通过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();
        }
      

  9.   

    直接用<>组成字符串就行了.
      

  10.   

     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()+"]]>"));
    这里面的<>无法生成,按楼上的那些方法还是不行,谁能给我完整的代码看看。
      

  11.   

    package com.xuz.csdn.worldcup.day2;import java.util.ArrayList;
    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>没有问题啊楼主
      

  12.   

    summary.appendChild(doc.createTextNode("<![CDATA["
    + kehu.getTitle() + "]]>"));少了个!
      

  13.   

    借助于Dom4j的addCDATA()可以
    Document document = DocumentHelper.createDocument();
    Element p = document.addElement("person");
    Element name = p.addCDATA("Headfffsend是");
      <person>
      <![CDATA[Hea……
      

  14.   

    Dom4j生成xml很方便,可以试一试