xml和string和xml和CDATA的用法

原创 2015年11月20日 15:54:58

xml和string和xml和CDATA的用法


StringToXml.java


import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringReader;


import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;


public class StringToXml {
public static void xmlTest(){
String xml="<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" +
"<root>" +
"<head>" +
"<name>MyName</name>" +
"<age><![CDATA[11]]></age>" +                                                //要注意   CDATA   格式的写法哦,不要缺少"<"符号
"</head>" +
"</root>";

//输出这个String类型的XML
System.out.println("输出这个String类型的XML:\n"+xml);

//将String的XML转化为XML类型并输出
Document document=null;
try {
document = DocumentHelper.parseText(xml);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}    
//为节点增加子节点
document.getRootElement().addElement("testNode_Add");
document.getRootElement().addElement("testNode_Add2");

//获取子节点并显示子节点的内容
System.out.println("\n获取子节点并显示子节点的内容:");
Element rt = document.getRootElement();
   Node nameNode=rt.selectSingleNode("/root/head/name");
   Node ageNode=rt.selectSingleNode("/root/head/age");
   rt.selectSingleNode("/root/testNode_Add").setText("实验新增节点");
   
   Element note2=(Element) rt.selectSingleNode("/root/testNode_Add2");
note2.addCDATA("实验CDATA节点内容");
   
   Node testNode_AddNode=rt.selectSingleNode("/root/testNode_Add");
   Node testNode_AddNode2=rt.selectSingleNode("/root/testNode_Add2");
   
   System.out.println("nameNode="+nameNode.getText());
   System.out.println("ageNode="+ageNode.getText());
   System.out.println("testNode_AddNode="+testNode_AddNode.getText());
   System.out.println("testNode_AddNode2="+testNode_AddNode2.getText());
   
   //将XML转化String
   String xml2=document.asXML();
   System.out.println(xml2);
   
   
   Document document2=null;
   SAXReader reader = new SAXReader();
   
   //将String转化为XML
StringReader stringReader = new StringReader(xml2.trim());
try {
document2 = reader.read(stringReader);

//XML转化为String
System.out.println("2"+document2.asXML());

} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//将XML格式化显示在操作台-默认是utf-8
OutputFormat outPutFormat=OutputFormat.createPrettyPrint();
outPutFormat.setEncoding("GBK");//如果要更改字符格式

XMLWriter xmlWriter=new XMLWriter(new OutputStreamWriter(System.out),outPutFormat);
try {
System.out.println("\n");
xmlWriter.write(document);
xmlWriter.flush();
System.out.println("\nxmlWriter.close();之后的代码都不会再运行");
xmlWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}

public static void main(String [] args){
xmlTest();
}


}

版权声明:本文为博主原创文章,欢迎转载,转载请声明出处 http://blog.csdn.net/bestcxx。

在Android String文件中使用CDATA

Android系统提供了对简单的HTML标签的支持,方便开发者设置格式化的文本内容,比如斜体、粗体等。 通过 android.text.Html.fromHtml(String source) 函数...
  • asdf717
  • asdf717
  • 2016年07月07日 11:43
  • 1725

不可不知的 Android strings.xml 那些事

转自:http://www.jianshu.com/p/ea5f8713c9a3 相信 strings.xml 已经是大家在 Android 开发中最熟悉的文件之一了,但其实它也有很多需...

XML:标签CDATA用法

  • 2012年01月29日 16:25
  • 28KB
  • 下载

包含CDATA的 字符串转换成xml

  • 2014年07月02日 15:33
  • 3KB
  • 下载

java注解生成xml和包含CDATA问题

百度java生成xml,有一大推的文章,主要的生成方式一种使用Dom4J ,还有一种使用Jdk自带注解类! 下面主要整理我注解类的使用,(可以参考这篇文章Dom4J生成xml和包含CDATA问题)和...

XML CDATA 以及转意字符

解析数据 XML 解析器通常情况下会处理XML文档中的所有文本。 当XML元素被解析的时候,XML元素内部的文本也会被解析: This text is also parsed ...

解决<![CDATA[xml]]>不能嵌套问题!

String msgXml = xml; String str = ""; 如果xml

SpringMVC收发带CDATA的xml报文

首先需要引入eclipselink包: org.eclipse.persistence eclipselink 2.5.0 实体类包下面需要添加jaxb.propertie...

cdata xml与json的互转

package xml;import java.io.IOException; import java.io.StringReader; import java.util.HashMap; impor...

xml中的<![CDATA[]]>和转义字符

被这个标记所包含的内容将表示为纯文本,比如表示文本内容“。    此标记用于xml文档中,我们先来看看使用转义符的情况。我们知道,在xml中,”、”>”、”&”等字符是不能直接存入的,否则xml语法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xml和string和xml和CDATA的用法
举报原因:
原因补充:

(最多只允许输入30个字)