XML 数据岛排序
- 格式:doc
- 大小:60.00 KB
- 文档页数:2
操作XML数据岛数据在IE浏览器中,当为XML数据岛创建一个标识符ID的时,实际上就是创建了操作XML数据岛的数据源对象DSO。
此处DSO对象可以看作是一个DOM树模型的根节点,即将XML数据岛作为一个加载到内存中的树而处理。
DSO对象可以根据DOM的树模型结构对XML数据岛进行添加、删除和修改节点,其执行效果会显示在当前HTML页面的数据上面,但不会影响XML数据岛本身的数据改变。
下面创建一个案例,演示使用DSO对象操作XML数据岛数据。
首先创建XM将上述代码保存,名称为Example7.xml。
创建引入XML数据岛的HTML网页,将上述代码保存,名称为Example7.html。
直接双击该文件,会显示如图8-9所示窗口:图8-9 DSO操作XML数据岛单击【显示根节点名称】按钮,会调用JavaScript函数c(),其中代码“dos.doc umentElement.nodeName”表示获取根节点名称,dos为数据源对象,此处为DOM 树模型根节点,documentElement为元素根节点,nodeName表示节点名称属性。
其执行结果如图8-10所示。
图8-10 显示根节点单击【显示第一个子节点名称】,会调用JavaScript函数d()。
该函数中,代码“dos.documentElement.childNodes[0].childNodes[0].nodeName”表示获取第一个子节点名称,childNodes[0]表示元素子节点集合的第一个子节点,第一个childNodes[0]表示根节点(<图书列表>)的子节点(第一个<图书>节点)列表,第二个childNodes[0]表示第一个图书节点的第一个子节点(<标题>)。
如果要获取第一个图书节点的子节点的文本数据,还需要使用firstChild,因为文本数据节点是<标题>节点的子节点。
其执行结果如图8-11所示:图8-11 显示第一个子节点单击【增加节点】按钮,会调用add函数。
xml整理格式XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。
要整理XML的格式,主要包括以下几个步骤:1.缩进:对XML元素进行缩进,以提高可读性。
通常,使用空格或制表符进行缩进,使得嵌套关系更加清晰。
2.换行:将不同的XML元素放在不同的行,以避免一行过长难以阅读。
3.标签大小写:统一XML标签的大小写,通常使用小写字母,以确保一致性。
4.属性排列:如果XML元素有属性,可以按照一定规则排列,例如按照字母顺序或根据属性的功能进行排列。
5.注释:使用注释来解释XML结构或提供其他相关信息,以便阅读者更好地理解XML 文件的内容。
以下是一个简单的XML示例,演示了上述整理格式的一些基本原则:```xml<bookstore><book><title>XML教程</title><author>John Doe</author><price>29.95</price></book><book><title>Web开发指南</title><author>Jane Smith</author><price>39.99</price></book></bookstore>```这个示例中,元素之间有适当的缩进和换行,标签使用小写字母,属性没有特定的排序,但整体结构清晰可读。
具体的格式整理方式可以根据团队或个人的习惯和项目要求进行调整。
遍历XML数据岛数据我们知道,通过数据源对象DSO可以对数据岛节点进行显示、查询、修改、删除和添加等操作,这些操作的依据是建立在树模型的基础之上的。
除此之外,DS O还可以把XML数据岛作为ADO记录集进行处理,这样做的好处是可以利用AD O提供的各种方法对数据源进行访问,尤其是当把数据岛与类似SPAN、DIV和IN PUT等HTML元素绑定时。
通常这些元素显示的是记录集的首条记录,要想对记录集进行遍历浏览,一个是使用前面我们讲到的表格对象绑定,另外一个是可以使用ADO的方法结合脚本程序完成相应的浏览数据的功能。
比如创建一个按钮响应函数,只要用户点击“Next”按钮,就可以逐条浏览相应的记录。
除了显示记录数据之外,脚本程序还可以对记录集进行快速查询、排序、编辑等操作。
但要指出的是,虽然ADO技术中提供了类似SortColumn和SortAscendin g等方法对XML数据进行排序,但是效果不如XSL中的排序操作,所以建议大家充分利用XSL技术来实现这部分功能。
当DSO数据源对象作为一个记录集对象来看待的时候,该记录集对象RecordS et具有下面几个常用的属性和方法,如表8-1所示:现在创建一个案例,使用上述方法和属性遍历XML数据岛数据。
首先创建X将上述代码保存,名称为Example8.xml。
创建引入XML数据岛的HTML页面,将上述代码保存,名称为Example8.html。
直接双击该文件,会显示如图8-15所示窗口:图8-15 遍历XML数据岛数据在该案例中,首先引入XML文件Example8,即创建数据岛对象dso。
当单击按钮时,会调用相应的JavaScript方法显示数据。
在JavaScript脚本程序中,移动到第一条记录使用moveFirst()方法,向下移动一条使用moveNext()方法,移动到最后一条使用moveLast()方法,向上移动一条记录使用movePrevious()方法。
JAXB--@XmlType注解标注xml⽣成顺序默认情况下,Jaxb编组出来的xml中的字段顺序是随机的,你可以使⽤@XmlType的propOrder属性来指定序列化的顺序。
第⼀步:定义java类时,使⽤@XmlType(propOrder = { "id", "name", "age","book"})指定输出顺序。
Java代码1. package step2;2. import java.util.Set;3.4. import javax.xml.bind.annotation.XmlElement;5. import javax.xml.bind.annotation.XmlElementWrapper;6. import javax.xml.bind.annotation.XmlRootElement;7. import javax.xml.bind.annotation.XmlType;8.9. @XmlRootElement10. @XmlType(propOrder = { "id", "name", "age","book"})11. public class Customer {12. String name;13. int age;14. int id;15. Set<Book> book;16. @XmlElement(name="name")17. public String getName() {18. return name;19. }20.21. public void setName(String name) {22. = name;23. }24.25. @XmlElement(name="age")26. public int getAge() {27. return age;28. }29.30. public void setAge(int age) {31. this.age = age;32. }33. @XmlElement(name="id")34. public int getId() {35. return id;36. }37.38. public void setId(int id) {39. this.id = id;40. }41.42.43. @Override44. public String toString() {45. return "Customer [id=" + id + ",name=" + name + ",age=" + age + ",book=" + book + "]";46. }47. @XmlElementWrapper(name="books")48. @XmlElement(name="book")49. public Set<Book> getBook() {50. return book;51. }52.53. public void setBook(Set<Book> book) {54. this.book = book;55. }56.57.58. }输出的xml:Xml代码1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>2. <customer>3. <id>100</id>4. <name>suo</name>5. <age>29</age>6. <books>7. <book>8. <id>1</id>9. <name>哈⾥波特</name>10. <price>100.0</price>11. </book>12. <book>13. <id>2</id>14. <name>苹果</name>15. <price>50.0</price>16. </book>17. </books>18. </customer>注:1.对于@XmlElementWrapper标注的属性,不能出现在@XmlType的propOrder列表中。
数据岛使用形式数据岛有两种定义方式,一种是直接将上述XML数据嵌入到HTML页面中,另一种是见XML数据保存在单独的XML文件中,在HTML页面中引入XML文件中的数据。
通过datasrc,datafld属性,可以将XML数据岛绑定到HTML控件。
1.嵌入XML数据使用非官方标准的<xml>标记可以将XML数据嵌入到HTML页面中。
实际上此时可以将XML数据作为一个字符串来看待。
创建HTML页面,打开记事本,输将上述代码保存,名称为Example2.html。
直接双击该网页,会显示如图8-2所示窗口:图8-2 HTML页面嵌入XML数据在该文件中,通过使用<xml>标记包含一个xml数据岛,该部分数据是独立的,需要注意的是要给XML数据岛分配一个id,其代码为“id="note"”。
如果要使用XML文件中的数据,需要调用id号。
在下面的标记中,使用datasrc和datafld把XML中的数据和表单元素绑定。
d atasrc表示HTML标记绑定的XML数据岛名称。
datafld表示获得该XML文档指定的标记中的内容。
该方式XML中的数据和HTML显示数据的标记放在一起,没有显示出数据和显示样式的分离,不推荐这种方式。
2.引入XML文件将XML文档数据嵌入到HTML页面,是一种可行的方法,但不是一种好的方法。
我们知道数据岛产生的根本原因,就是将数据和显示样式进行分离。
在HTML 页面中引入XML文档,很好的达到了界面和数据的分离,只需要在HTML页面中嵌入“<xml id="island" src="xxx.xml"></xml>”其中id是XML文档标识符,src 属性值是xml文件存放位置。
现在创建一个案例,演示在HTML页面中引入XML文档。
首先创建XML文档,打开记事本,输入下列代码:示窗口:图8-3 HTML页面引入XML文件在该案例中,XML文件是单独存在的,HTML页面如果要使用XML中的数据,必须通过<xml></xml>标记将XML文件引入过来,并赋予该文档在HTML网页中唯一标识符。
QDomElement属性顺序1. 简介QDomElement是Qt中用于操作XML文档的类之一,它代表了XML文档中的元素节点。
在使用QDomElement时,了解其属性的顺序对于正确地操作XML文档非常重要。
本文将介绍QDomElement属性的顺序,以便于开发者在实际应用中能够更加高效地操作XML文档。
2. QDomElement属性列表在了解QDomElement属性的顺序之前,首先需要了解它包含的属性。
以下是QDomElement可能包含的属性列表:- tagName: 元素节点的标签名- attribute: 元素节点的属性- text: 元素节点的文本内容- firstChild: 元素节点的第一个子节点- lastChild: 元素节点的最后一个子节点- attributes: 元素节点所包含的所有属性- childNodes: 元素节点的所有子节点3. QDomElement属性顺序在实际使用QDomElement时,需要遵循一定的属性操作顺序,以确保XML文档的正确性和操作的准确性。
以下是QDomElement属性的操作顺序:- 先设置tagName属性: 由于元素节点的标签名是必须的,所以在创建或操作QDomElement时,首先需要设置tagName属性。
- 设置attribute属性: 在设置元素节点的属性时,通常需要在设置文本内容之前,因此在tagName后设置attribute属性。
- 设置text属性: 文本内容通常是在设置属性之后进行设置的,因此在设置完属性之后再设置text属性。
- 设置childNodes: 若需要设置元素节点的子节点,应在设置完tagName、attribute和text属性之后,最后设置childNodes属性。
- 获取属性值: 在读取元素节点的属性值时,同样需要遵循一定的顺序,先获取tagName,然后是attribute和text属性的值,最后是childNodes属性的值。