XML知识小结

1.XML有如下应用:

1_存储数据,即在没有数据库的情况下,是一个很好的替代品;

2_传输数据,即服务器以XML的形式向android发送数据

3_软件配置,即通用配置XML文件,通知应用程序如何处理业务

2.判断XML语法及其有效性

浏览器能原样显示XML,说明XML语法没有问题。如果XML按照

DTD规则写的要经过浏览器显示原样,还有用专门检测工具来

检测是否符合DTD规则,如果符合DTD规则才算有效。

3.DTD三中基本关联方式:

内部:<!DOCTYPE 根节点 [

<!ELEMENT 元素 (约束条件)>

<!ELEMENT 元素 (约束条件)>

。。。  。。。。。

]>

外部:<!DOCTYPE 根节点 SYSTEM "路径">

公共:<!DOCTYPE 根节点 PUBLIC 名字 "路径" >

4.DTD约束要素

元素(ELEMENT)定义

属性(ATTLIST)定义

实体(ENTITY)定义

典例:

company.dtd
<!ENTITY%tip "name,loc">
<!ELEMENT company(emp,cust)>
<!ELEMENT emp(%tip;)>
<!ELEMENT cust(%tip;)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT loc(#PCDATA)>
example.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookstore [
<!ELEMENT bookstore (book)>
<!ELEMENT book(title+)>
<!ELEMENT      title(#PCDATA)>
<!ENTITY          it "我们是一名软件工程师">
]>
<bookstore>
<book>
<title>
&it;
</title>
</book>
</bookstore>

5.XML解析(dom4j解析器)

SAXReade saxreader = new SAXReader;

document xsmldocumen = saxreader.read("xml文件路径");

典例:

import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
 * 使用dom4j解析器
 * 传统方式定位标签
 * XPATH方式定位d标签
 */
public class Demo06 {
public static void main(String[] args) throws Exception{
//创建dom4j解析器对象
SAXReader saxReader = new SAXReader();
//创建InputStream对象,指向硬盘的xml文件
Document xmlDocument = 
saxReader.read(
Demo06.class.getClassLoader().getResource("cn/itcast/android/xml/tv.xml"));
//Element rootElement = xmlDocument.getRootElement();
//String name = rootElement.element("a").element("b").element("c").element("d").getText().trim();
//System.out.println(name);
//System.out.println("----------------------------------");
//String xpath = "/tv/a/b/c/d";
//String xpath = "//d";
//String age = "23";
//String xpath = "//d[@age=‘"+age+"‘]";
String xpath = "//e[@name=‘哈哈‘ and @pass=‘123‘]";
Element element = (Element) xmlDocument.selectSingleNode(xpath);
//List<Element> list = xmlDocument.selectNodes(xpath);
if(element!=null){
String name = element.getText().trim();
System.out.println(name);
}else{
System.out.println("查无此人");
}
}
}
时间: 2024-09-29 17:54:39

XML知识小结的相关文章

180531-Spring中JavaConfig知识小结

原文链接:Spring中JavaConfig知识小结/ Sring中JavaConfig使用姿势 去掉xml的配置方式,改成用Java来配置,最常见的就是将xml中的 bean定义, scanner包扫描,属性文件的配置信息读取等 I. 几个基本注解 1. Configuration注解 在javaConfig中注解@Configuration用来代替一个xml文件,可以简单的理解他们的作用是相等的,一般bean的定义也都是放在被这个注解修饰的类中 如一个基本的配置文件如下 @Configura

awk基础知识小结(1)

1.使用规则 awk 适合于文本处理和报表生成,它还有许多精心设计的特性,允许进行需要特殊技巧程序设计. awk  的语法较为常见.它借鉴了某些语言的一些精华部分,如C 语言.python 和 bash. 第一个 awk 让我们继续,开始使用 awk,以了解其工作原理.在命令行中输入以下命令: $ awk '{ print }'  /etc/passwd 您将会见到 /etc/passwd 文件的内容出现在眼前.现在,解释 awk 做了些什么.调用 awk 时,我们指定  /etc/passwd

awk基础知识小结(2)

10.循环结构循环结构awk 的 while 循环结构,它等同于相应的 C 语言 while 循环.awk 还有 "do...while" 循环,它在代码块结尾处对条件求值,而不象标准 while 循环那样在开始处求值.它类似于其它语言中的 "repeat...until" 循环.示例:do...while 示例 {     count=1     do {    print "I get printed at least once no matter w

C/C++ 位域知识小结

C/C++ 位域知识小结 几篇较全面的位域相关的文章: http://www.uplook.cn/blog/9/93362/ C/C++位域(Bit-fields)之我见 C中的位域与大小端问题 内存对齐全攻略–涉及位域的内存对齐原则 本文主要对位域相关知识进行了一下梳理,参考如下: C语言中的位域 史上最全的C位域总结2 C结构体之位域(位段) C/C++中以一定区域内的位(bit)为单位来表示的数据成为位域,位域必须指明具体的数目. 位域的作用主要是节省内存资源,使数据结构更紧凑. 1. 一

suid知识小结

1.1.1 suid知识小结:针对命令和二进制程序 1)用户或属主对应的前三位权限的x位上如果有s就表示suid权限.当x位上没有小写x执行权限的时候,suid的权限显示的就是大S. 2)suid作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等.(注意和su及sudo的区别),suid为某个命令设置特殊权限(使用者为所有人).通过给rm命令设置suid加深学生对suid的理解. 3)问题:希望oldboy

javascript之正则表达式基础知识小结

javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要用“\”来进行转移. 如果记不清楚那些标点符号需要转移,可以在使用标点符号时都使用反斜杠“\” 简单匹配 1.直接量 /javascript/ 匹配带有“javascript”的字符串 比如“javascript is an object-oriented scripting language” 2.[

Android app开发知识小结

Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,density是一个抽象的单位,density值表示每英寸有多少个显示点,与分辨率是两个概念QVGA屏density=120         QVGA(240*320)HVGA屏density=160         HVGA(320*480)WVGA屏density=240        WVGA(

关闭selinux知识小结

今天有人问我,哎,福星,关闭selinux这块我还有点蒙,能给我分析分析么? selinux是什么? 1.     我的简单理解:selinux是一套安全的机制,在学习环境下建议关闭,功能方面可以一些机制所替代.比如防火墙等系列安全措施 selinux一定要关闭么? 1.     没有基础又不愿意倘坑的小伙伴可以关闭,工作中环境大都不开启 2.     开启的坏处是使用中需要倘很多的坑,如果有面对困难的勇气,那就别管它 修改selinux运行状态的相关 setenforce  1 | 0    

Linq知识小结

Linq语法小结:有两种形式的语法可供我们在写Linq查询时使用,分别是“查询语法”.“方法语法”.1)先看个列子,有个直观认识     int[] arr = { 12, 2,45,34,23,18,4};     //查询语法形式(推荐使用这种).返回的是一个可枚举类型     IEnumerable<int> results = from temp in arr                                where temp > 20