首頁 資料庫 mysql教程 XML解析以及增删改查的操作 2

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

Jun 07, 2016 pm 03:00 PM
xml 介面 操作 節點 解析

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

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


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

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

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

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

   再写了节点的基类Node:

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>
登入後複製


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







本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為Mate60 Pro截圖操作步驟分享 華為Mate60 Pro截圖操作步驟分享 Mar 23, 2024 am 11:15 AM

隨著智慧型手機的普及,螢幕截圖功能成為日常使用手機的必備技能之一。華為Mate60Pro作為華為公司的旗艦手機之一,其截圖功能自然也備受用戶關注。今天,我們就來分享華為Mate60Pro手機的截圖操作步驟,讓大家能夠更方便地進行截圖操作。首先,華為Mate60Pro手機提供了多種截圖方式,可以依照個人習慣選擇適合自己的方式來操作。以下詳細介紹幾種常用的截

PHP 中點的意思和用法解析 PHP 中點的意思和用法解析 Mar 27, 2024 pm 08:57 PM

【PHP中點的意義和用法解析】在PHP中,中點(.)是常用的運算符,用來連接兩個字串或物件的屬性或方法。在本文中,我們將深入探討PHP中點的意義和用法,並透過具體的程式碼範例加以說明。 1.連接字串中點運算子.在PHP中最常見的用法是連接兩個字串。透過將.放置在兩個字串之間,可以將它們拼接在一起,形成一個新的字串。 $string1=&qu

Win11新功能解析:跳過登入微軟帳號的方法 Win11新功能解析:跳過登入微軟帳號的方法 Mar 27, 2024 pm 05:24 PM

Win11新功能解析:跳過登入微軟帳號的方法隨著Windows11的發布,許多用戶發現其帶來了更多的便利性和新功能。然而,有些用戶可能不喜歡將其係統與微軟帳戶綁定,希望跳過這一步驟。本文將介紹一些方法,幫助使用者在Windows11中跳過登入微軟帳戶,並實現更私密、更自主的使用體驗。首先,讓我們來了解為什麼有些用戶不願意登入微軟帳號。一方面,一些用戶擔心他們

PHP介面簡介及其定義方式 PHP介面簡介及其定義方式 Mar 23, 2024 am 09:00 AM

PHP介面簡介及其定義方式PHP是一種廣泛應用於Web開發的開源腳本語言,具有靈活、簡單、強大等特性。在PHP中,介面(interface)是一種定義多個類別之間公共方法的工具,實現了多態性,讓程式碼更加靈活和可重複使用。本文將介紹PHP介面的概念及其定義方式,同時提供具體的程式碼範例展示其用法。 1.PHP介面概念介面在物件導向程式設計中扮演著重要的角色,定義了類別應

PHP字串操作:有效去除空格的實用方法 PHP字串操作:有效去除空格的實用方法 Mar 24, 2024 am 11:45 AM

PHP字串操作:有效去除空格的實用方法在PHP開發中,經常會遇到需要對字串進行去除空格操作的情況。去除空格可以讓字串更加整潔,方便後續的資料處理和顯示。本文將介紹幾種有效的去除空格的實用方法,並附上具體的程式碼範例。方法一:使用PHP內建函數trim()PHP內建函數trim()可以移除字串兩端的空格(包括空格、製表符、換行符等),非常方便且簡單易用

餓了麼綁定微信怎麼操作 餓了麼綁定微信怎麼操作 Apr 01, 2024 pm 03:46 PM

餓了麼這款軟體裡面匯集了各種不同的美食,大家可以在線上挑選下單,商家接單後就會立即進行製作,用戶們可以透過軟體來綁定微信,想要了解具體的操作方法的話,記得來PHP中文網看看哦。餓了麼綁定微信方法說明1、先打開餓了麼軟體,進入到首頁後我們點選右下角的【我的】;2、然後在我的頁面中我們需要點選左上角的【帳號】; 3.接著來到個人資料的頁面中我們可以綁定手機、微信、支付寶、淘寶,在這裡我們點擊【微信】;4、最後點擊過後在微信授權的頁面中選好需要綁定的微信號之後點擊【允許】即可;

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

Astar質押原理、收益拆解、空投項目及策略 & 操作保姆級攻略 Astar質押原理、收益拆解、空投項目及策略 & 操作保姆級攻略 Jun 25, 2024 pm 07:09 PM

目錄Astar Dapp 質押原理質押收益 拆解潛在空投項目:AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap 質押策略 & 操作“AstarDapp質押”今年初已升級至V3版本,對質押收益規則做了不少調整。目前首個質押週期已結束,第二質押週期的「投票」子週期剛開始。若要獲得「額外獎勵」收益,需掌握此關鍵階段(預計持續至6月26日,現餘不到5天)。我將細緻拆解Astar質押收益,

See all articles