关闭

xml和string和xml和CDATA的用法

标签: xmlstringCDATA
1130人阅读 评论(1) 收藏 举报

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();
}


}

0
0
查看评论

在Android String文件中使用CDATA

Android系统提供了对简单的HTML标签的支持,方便开发者设置格式化的文本内容,比如斜体、粗体等。 通过 android.text.Html.fromHtml(String source) 函数可以获取一个格式化后的文本显示对象。 目前支持如下的HTML标签: Supported...
  • asdf717
  • asdf717
  • 2016-07-07 11:43
  • 1984

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

转自:http://www.jianshu.com/p/ea5f8713c9a3 相信 strings.xml 已经是大家在 Android 开发中最熟悉的文件之一了,但其实它也有很多需要注意的地方和一些小技巧,知道了这些可以让你的 Android 应用更加规范易用,大家来看看吧。: ...
  • qq_34206198
  • qq_34206198
  • 2016-08-01 14:18
  • 2014

XML 中的 ﹤![CDATA[ ]]>,及其解析

CDATA    CDATA 全名:character data,在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。 DT...
  • qq_33266987
  • qq_33266987
  • 2017-01-09 13:31
  • 5815

xml中CDATA作用

本文主要介绍xml中CDATA作用。    为了解决属性值中使用XML中的特殊字符,xml使用类似的转义字符去描述。   字符 转移字符 &lt; >  ...
  • psp0001060
  • psp0001060
  • 2016-01-25 17:34
  • 14570

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

被这个标记所包含的内容将表示为纯文本,比如表示文本内容“。    此标记用于xml文档中,我们先来看看使用转义符的情况。我们知道,在xml中,”、”>”、”&”等字符是不能直接存入的,否则xml语法检查时会报错,如果想在xml中使用这些符号,必须将其转义为实体,如”&...
  • asdfsadfasdfsa
  • asdfsadfasdfsa
  • 2017-07-04 14:41
  • 929

PHP解析带CDATA的XML方法

XML文件,如下 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]>&l...
  • cliviaPP
  • cliviaPP
  • 2016-01-13 17:11
  • 2112

xml格式异常-CDATA嵌套

在CDATA内部的所有内容都会被解析器忽略。一个 CDATA 部件以""标记结束。但是要记住,CDATA是不能够嵌套的。但是现在,就是有人要求实现CDATA的嵌套。 比如,将下面这段XML加到另外一个XML的某个元素里面: library Library Managemen...
  • xuxuchuan
  • xuxuchuan
  • 2016-11-29 15:57
  • 609

xml CDATA区、特殊字符:<= 小于等于、>= 大于等于

XML文档中包含类似"Elements look like "的文本,其中的""将被解析程序解释成一个元素,而人们实际想要的是""所表示的原义文本。 1.CDATA区:它的全称为character data,以""开始...
  • jihuanliang
  • jihuanliang
  • 2012-09-14 22:37
  • 68060

为XML添加CDATA标记

CDATA标记用户处理XML中出现 ,在消息传输过程中,为什么要加上这一段字符串? 首先,先来了解一下什么是CDATA? 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据。 在 XML 元素中," " "&" 也会产生错...
  • huai814586181
  • huai814586181
  • 2016-05-08 20:08
  • 6035

HTML显示xml中的CDATA内容

http://zhengjunwei2007-163-com.iteye.com/blog/656098   HTML中的标签和XML中的标签是同样功能! 在HTML文件中,如果我们要浏览器原封不动地将我们所输入的东西显示出来,可以将这些东西放到〈pre〉〈/pre〉或者〈xm...
  • caolaosanahnu
  • caolaosanahnu
  • 2013-05-31 15:33
  • 1555
    个人资料
    • 访问:914583次
    • 积分:10764
    • 等级:
    • 排名:第1827名
    • 原创:310篇
    • 转载:138篇
    • 译文:1篇
    • 评论:81条
    联系博主
    博客专栏