Heim > Datenbank > MySQL-Tutorial > XML解析以及增删改查的操作 2

XML解析以及增删改查的操作 2

WBOY
Freigeben: 2016-06-07 15:00:54
Original
1210 Leute haben es durchsucht

我写了一个节点操作的接口INodeAction,直接贴代码: getPreviousSibling方法就是获取上一个相邻的节点,getNextSibling是获取下一个相邻的节点。 getBeifen方法主要是为了文档式化用。是根节点则返回0. printSpace方法就是根据节点辈分,在写文档的时候式化

     我写了一个节点操作的接口INodeAction,直接贴代码:


  XML解析以及增删改查的操作 2

    getPreviousSibling方法就是获取上一个相邻的节点,getNextSibling是获取下一个相邻的节点。

    getBeifen方法主要是为了文档格式化用。是根节点则返回0.

    printSpace方法就是根据节点辈分,在写文档的时候格式化

   再写了节点的基类Node:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

import java.io.Serializable;

import java.util.List;

/**

 * xml文档节点基类,可以是普通节点,注释节点,文本节点

 * */

public abstract class Node implements Serializable,INodeAction{

 

    /**

     * 序列化版本号

     */

    private static final long serialVersionUID = 3858789701720999153L;

    /**

     * 父节点.规定 根节点的父节点为空

     * */

    protected Element father;

    /**

     * 由文档对象直接添加的节点 domFather赋值为document对象

     * */

    protected Document domFather;

    @Override

    public Integer getBeifen(){

        Integer n;

        if(father==null){

            n = 0;

            return n;

        }

        Node node = this;

        n = 0;

        while(node.father!=null){

            n++;

            node = node.father;

            if(node.father==null){

                return n;

            }

        }

        if(!(node.father==null)){

            return null;

        }

        return n;

    }

     

    public Element getFather() {

        return father;

    }

    @Override

    public String printSpace() {

        StringBuffer sb = new StringBuffer();

        Integer n = getBeifen();

        if (n == null) {

            return sb.toString();

        }

        for (int i = 0; i  nodeList = domFather.getNodeList();

                int idx = nodeList.indexOf(this);

                return idx==0?null:nodeList.get(idx-1);

            }

        }

        List<node> nodeList = father.getNodeList();

        int idx = nodeList.indexOf(this);

        return idx==0?null:nodeList.get(idx-1);

    }

     

    @Override

    public Node getNextSibling() {

        if(father==null){

            if(domFather==null){

                DocumentUtil.throwException("节点还没添加到文档!");

            }else{

                List<node> nodeList = domFather.getNodeList();

                int idx = nodeList.indexOf(this);

                return idx==nodeList.size()-1?null:nodeList.get(idx+1);

            }

        }

        List<node> nodeList = father.getNodeList();

        int idx = nodeList.indexOf(this);

        return idx==nodeList.size()-1?null:nodeList.get(idx+1);

    }

}</node></node></node>

Nach dem Login kopieren


关键在于编程的思想。有想法就什么都能实现。下面就是写节点的具体实现类了。另起一篇。







Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage