<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<?xml-stylesheet type="text/css" href="a.css" ?>
<users>
<user id="1">
<name>张三</name>
<age>18</age>
<gender>男</gender>
</user>
<user id="2">
<name>白金</name>
<age>17</age>
<gender>女</gender>
</user>
<code>
<![CDATA[
if(a>b && b<c){}
]]>
</code>
</users>
css文件:
name{
color: red;
}
约束
xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE students SYSTEM "student.dtd">
<!--本地约束dtd文件-->
<students>
<student number="s001">
<name>zhangsan</name>
<age>18</age>
<sex>male</sex>
</student>
</students>
dtd文件:
<!ELEMENT students (student*) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA) >
<!ELEMENT sex (#PCDATA) >
<!ATTLIST student number ID #REQUIRED >
解析
xml文档:
<?xml version="1.0" encoding="utf-8" ?>
<students>
<student number="s001">
<name>银灰</name>
<age>18</age>
<sex>male</sex>
</student>
<student number="s002">
<name>白金</name>
<age>17</age>
<sex>女</sex>
</student>
</students>
解析程序:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class get_xml_test_1 {
public static void main(String[] args) throws Exception {
String path = get_xml_test_1.class.getClassLoader().getResource("student.xml").getPath();
//获取资源文件
Document document = Jsoup.parse(new File(path), "utf-8");
//解析xml文档,加载文档进内存
Elements names = document.getElementsByTag("name");
//获取文档中的name元素,返回值是一个元素集
Element element = names.get(0);
//获取name元素集的第一个元素,返回值是第一个元素
String text = element.text();
//将获取到的第一个元素,转化为text格式
System.out.println(text);
//打印第一个name元素
}
}
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class jsoup_xml_document {
public static void main(String[] args) throws IOException {
String path = jsoup_xml_document.class.getClassLoader().getResource("student.xml").getPath();
Document parse = Jsoup.parse(new File(path), "utf-8");
Elements allElements = parse.getAllElements();
//获取所有的元素,返回一个元素集
System.out.println(allElements);
System.out.println("---------------------------------------");
//获取id为saw的元素
Element saw = parse.getElementById("saw");
System.out.println(saw);
System.out.println("---------------------------------------");
//获取姓名为id的元素对象们
Elements id = parse.getElementsByAttribute("id");
System.out.println(id);
System.out.println("---------------------------------------");
//获取number属性值为s002的元素对象
Elements elementsByAttributeValue = parse.getElementsByAttributeValue("number", "s002");
System.out.println(elementsByAttributeValue);
System.out.println("---------------------------------------");
//获取所有student对象
Elements student = parse.getElementsByTag("student");
System.out.println(student);
}
}
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class jsoup_xml_element {
public static void main(String[] args) throws IOException {
String path= jsoup_xml_element.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path),"utf-8");
//获取所有name标签,返回一个name标签的元素集
Elements names = document.getElementsByTag("name");
System.out.println(names);
System.out.println("-----------------------------------");
//获取student标签的第一个属性,再获取第一个属性的name标签的元素值
Element student = document.getElementsByTag("student").get(0);
Elements name = student.getElementsByTag("name");
System.out.println(name);
System.out.println("-----------------------------------");
//获取number标签的元素值
String number = student.attr("number");
System.out.println(number);
//获取student标签中的文本内容,不包括标签
String text = student.text();
System.out.println(text);
System.out.println("-----------------------------------");
//获取student标签的所有内容,包括标签
String html = student.html();
System.out.println(html);
}
}
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.File;
import java.io.IOException;
public class jsoup_xml_select {
public static void main(String[] args) throws IOException {
String path = jsoup_xml_select.class.getClassLoader().getResource("student.xml").getPath();
Document doc = Jsoup.parse(new File(path),"utf-8");
//获取所有的name标签
Elements name = doc.select("name");
System.out.println(name);
System.out.println("-------------------------");
//获取id为saw的标签
Elements select = doc.select("#saw");
System.out.println(select);
System.out.println("-------------------------");
//获取student中的number属性值为s002的age标签内容
Elements select1 = doc.select("student[number=\"s002\"] > age");
System.out.println(select1);
System.out.println("--------------------------");
}
}
import cn.wanghaomiao.xpath.exception.XpathSyntaxErrorException;
import cn.wanghaomiao.xpath.model.JXDocument;
import cn.wanghaomiao.xpath.model.JXNode;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class jsoup_xml_Xpath {
public static void main(String[] args) throws IOException, XpathSyntaxErrorException {
String path = jsoup_xml_Xpath.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path),"utf-8");
//创建JXDocument对象
JXDocument jxDocument = new JXDocument(document);
//获取所有student标签元素,返回一个JXNode类型的集合
List<JXNode> jxNodes = jxDocument.selN("//student");
for (JXNode jxNode : jxNodes) {
System.out.println(jxNode);
}
System.out.println("----------------------------------------------");
//获取所有student标签下的name标签元素,返回一个JXNode类型的集合
List<JXNode> jxNodes2 = jxDocument.selN("//student/name");
for (JXNode jxNode : jxNodes2) {
System.out.println(jxNode);
}
System.out.println("----------------------------------------------");
//获取所有student标签下的name标签的带有id属性的元素,返回一个JXNode类型的集合
List<JXNode> jxNodes3 = jxDocument.selN("//student/name[@id]");
for (JXNode jxNode : jxNodes3) {
System.out.println(jxNode);
}
System.out.println("----------------------------------------------");
//获取所有student标签下的name标签的带有id属性=gray的元素,返回一个JXNode类型的集合
List<JXNode> jxNodes4 = jxDocument.selN("//student/name[@id='gray']");
for (JXNode jxNode : jxNodes4) {
System.out.println(jxNode);
}
System.out.println("----------------------------------------------");
}
}