网站建设费可分摊几年,高端h5网站,北京网站设计培训机构,网站建设安排总结XML的语法
1.xml是由自定义的标签组成 开始标签标签体/结束标签 自闭合标签/
2.xml文件的语法
1)必须要有一个文档声明
?xml version1.0 encodingUTF-8 ?2)只有一个根标签3)特殊字符 如 必须使用…XML的语法
1.xml是由自定义的标签组成 开始标签标签体/结束标签 自闭合标签/
2.xml文件的语法
1)必须要有一个文档声明
?xml version1.0 encodingUTF-8 ?2)只有一个根标签3)特殊字符 如 必须使用特殊的比较进行代替lt; 小于gt; 大于amp; 和号apos; 单引号quot; 引号4)CDATA区数据可以被原样显示不被当做标签解析![CADATA[内容]]3.示例
?xml version1.0 encodingutf-8 ?
!--本文件用于描述多个学生的信息--
!--根标签--
students xmlnshttp://www.itheima.comxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.itheima.com student.xsd!--第一个学生信息--student id 1name张三/nameage23/age!--; ; ; ;;有特殊的字符表示info学生的信息 lt; gt; amp;apos;quot;/infomessage ![CDATA[文本内容 ]]] /message--/student!--第二个学生信息--student id 2name李四/nameage24/age/student
/studentsXML的解析和约束文档引入
1schema约束文档[本质也是一个xml文档]
?xml version1.0 encodingUTF-8 ?
!--Xml的约束文档[schema]--
!--被约束目标--
!--约束目标--
!--文件良好--
schema xmlnshttp://www.w3.org/2001/XMLSchematargetNamespacehttp://www.itheima.comelementFormDefaultqualified!--定义students复杂元素--element name studentscomplexTypesequence!--定义student复杂元素--element name student maxOccursunboundedcomplexTypesequence!--定义name和age简单元素--element name name typestring/elementelement name age typeint/element/sequence!--引入简单标签属性required必须的 optional可选的--attribute name id typestring userequired/attribute/complexType/element/sequence/complexType/element
/schema2约束文档引入[xml根标签属性内定义]
students xmlnshttp://www.itheima.comxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.itheima.com student.xsd3XML文档解析 利用dom4j解析文档,需要导入相应的jar包 domr4点击下载
//利用dom4j解析xml文件
public class XmlParse {public static void main(String[] args) throws DocumentException {//1.获取一个解析器对象[字符流]SAXReader saxReader new SAXReader();//2.利用解析器把xml文件加载到内存中并返回一个文档对象Document document saxReader.read(day17_myXml\\xml\\student.xml);//3.获取到根标签Element rootElement document.getRootElement();//4.通过根标签来获取student标签//elements();可以获取调用者所有的子标签并以集合的形式返回//List list rootElement.elements();//elements(student);可以获取调用者所有指定的子标签并以集合的形式返回ListElement studentElements rootElement.elements(student);//System.out.println(studentElements.size());//5.遍历集合得到每一个student标签ArrayListStudent list new ArrayListStudent();for (Element element : studentElements) {//element依次表示每一个student标签//获取id这个属性对象Attribute id element.attribute(id);//获取id的属性值String idValue id.getValue();//获取name这个标签对象,再获取标签体[具体文本内容]String name element.element(name).getText();//获取age这个标签对象再获取标签体[具体文本内容]String age element.element(age).getText();//每次获取标签值再封装成一个学生对象存入集合中list.add(new Student(idValue, name, Integer.parseInt(age)));}//遍历学生集合for (Student student : list) {System.out.println(student);}}
}打印结果:
------------------------------------------------------
Student{id1, name张三, age23}
Student{id2, name李四, age24}