xml檔案的編寫 解析和元素定義

2021-08-13 11:05:41 字數 2422 閱讀 8859

最近接手乙個專案的三期改造,**是外包公司編寫,交由我方先做第三期改造,看到專案中有用到自定義的" .dtd "檔案,以前沒見過,做了一下總結

1.專案中乙個".dtd"檔案demo  檔名cache-dict.dtd

<?xml 

version

="1.0"

encoding

="utf-8"

?>

dicts

(dict*)>

dict

(from,key,val)>

dict

idid

#required

orgright

(none|id|no) "none"

>

from

(#pcdata)>

from

name

(exeid) "exeid"

>

key(#pcdata)>

val(#pcdata)>

valseparator

cdata

"-">

<?

xml version

="1.0"

encoding

="utf-8"

?>

dicts

system

"../../dtd/cache-dict.dtd"

>

<

dicts

>

<

dict

id="a"

>

<

from

name

="exeid"

>zhao

from

>

<

key>value

key>

<

val>text

val>

dict

>

<

dict

id="b"

>

<

from

name

="exeid"

>qian

from

>

<

key>value

key>

<

val>text

val>

dict

>

<

dict

id="c"

>

<

from

name

="exeid"

>sun

from

>

<

key>value

key>

<

val>text

val>

dict

>

<

dict

id="d"

>

<

from

name

="exeid"

>li

from

>

<

key>value

key>

<

val>text

val>

dict

>

dicts

>

?=0次或者1次,+=一次或者多次,*=0次或者多次

2.讀取xml文件

import

org.dom4j.document;

import org.dom4j.documentexception;

import org.dom4j.element;

import org.dom4j.io.saxreader;

// 讀取xml檔案的方法

saxreader saxreader = new saxreader();document doc = saxreader.read(f);// f為 file file = new file(「xml文件路徑」)element root = doc.getrootelement();// 獲取 .dtd 文件中定義的屬性的元素

if(root != null) }}

}}

}

3.dtd中的定義規則

必須列出所有節點,乙個都不能少

1)元素

"*"星號  表示可以出現0-n次

"+"加號  表示可以出現1-n次

"|"   表示或(只能出現乙個)

如(phone|mobile)表示固話或手機二選一

"?"問號:  表示出現0或1此

#pcdata 表示字串

2)屬性:

定義在開始標記中的鍵值對

dtd 規則_屬性

1)

XML元素定義(標籤)以及解析

其實就是裡面的標籤,括起來的都叫元素 成對出現。如下 文件宣告下來的第乙個元素叫做根元素 根標籤 標籤裡面可以巢狀標籤 空標籤既是開始也是結束。一般配合屬性來用。張三標籤可以自定義。xml 命名規則 xml 元素必須遵循以下命名規則 名稱可以含字母 數字以及其他的字元 名稱不能以數字或者標點符號開始...

XML的解析與編寫

1導入庫import xml.etree.elementtree as et2例項化物件tree et.elementtree tree.parse test.xml root tree.getroot 獲取所有節點 root.tag 該節點的標籤 root 0 tag 該節點第乙個子節點的標籤 r...

XML檔案的解析和json的解析

解析就是從事先規定好的格式中提取資料 xml的解析方式有兩種 sax解析 dcm解析 安卓有乙個pull sax解析 nsstring path nsbundle mainbundle pathforresource message oftype txt nsdata data nsdata dat...