XML系列之 建立電文格式的XML(一)

2022-02-10 13:59:58 字數 1756 閱讀 4094

關於xml,學校那會,老師在口中僅僅提及,自己也未曾深入接觸過,僅是些將最基本xml檔案內容顯示在web定義的**中之類的簡單操作,如今專案中的收發電文涉及到複雜xml的操作。趁此契機好好回顧下xml知識。

xml作為一種可擴充套件的標記語言,可以一種簡單文字格式儲存資料的方式,被任何計算機讀取。非常靈活。標準的xml格式(分層組織)是包含乙個版本資訊的節點(第一行),和乙個可包含多級層級節點的根結點。和html不同的是,xml的節點名稱、節點屬性等可自定義,並區別大小寫,這點反映了其靈活性。

關於xml節點的內容,包含命名空間(字首)、屬性。至於命名空間是個啥,其實也很好理解,如兩軍開戰,兵卒廝殺,為了識別己方人員,不同的衣服、裝飾這些都是所謂的馬甲。命名空間也是同樣的道理。穿上馬甲,表明自己身份,是誰手下的兵,該歸誰管。

完整的soap格式的xml就我目前遇到的分為兩種:

1. 帶層級的包含命名空間,就是x0裡面包含的x1,x2body裡面包含x3、x4 ,而不是單層存在

<?xml version="

1.0" encoding="

utf-8

"?>

"" xmlns:x1="

">

icc01

"" xmlns:x3="

" xmlns:x4="

">

0000

對於這種方式寫操作,思路是: 一層一層進行,然後進行拼接,命名空間尤其是帶字首的,用 xelement 來處理,引用的具體**,用 xattribute 來表示,此外對於標籤資料的寫入,同樣也是用xelement元素,格式是:xelement(命名空間,"標籤名","標籤值"),對於子節點的話,就是巢狀,在第三個引數標籤值的位置上,再new element元素即可

public

void

createxml()

2. 對於純單層級的命名空間,就是x0標籤中只有x0,x1則在其下乙個標籤

<?xml version="

1.0" encoding="

utf-8

"?>

"">

"">

icc01

"">

"">

1230000

如果要建立這種格式的xml,總的來說和第一種的思路是完全一樣,我理解的不同就是,層級關係改變了,所以在寫操作的時候,部分**需要對應的調整,只要掌握了思想,不管巢狀多少層,一層一層的進行寫入,進行除錯,就不會出錯,如下

public

void

createxml()

很多時候要求的是動態的xml,比如在某個指定節點下迴圈插入某個資料來源(資料庫)中的資料,對於此類,需要兩步走,第一,獲取指定位置的節點,第二在該位置下插入資料,至於迴圈的話,for語句即可處理,如下

//獲取

插入點元素

xelement locnode = root.descendants(x2 + "

statuscode

").firstordefault(); //

需要迴圈建立的xml節點

for (int i = 0; i < dt.rows.count; i++)

如此便已成功建立完複雜電文格式的xml。後面的話我會陸續介紹關於複雜xml操作的更多說明,包括解析、簡單操作、以及其他複雜型別的xml。

--舊時王謝堂前燕,飛入尋常百姓家

--市人皆大笑,舉手揶揄之

掌握XML系列 四 建立格式良好的XML文件

掌握xml系列 四 建立格式良好的xml文件 前言 建立良好格式的xml文件,雖然寫了這些,其實,等到大家真正的看完之後美酒會發現,其實也很簡單的,我們這裡所做的是帶著大家全面的看看怎麼樣建立.這一節,我們講解有關屬性的問題.xml的屬性 關於屬性的問題,有幾點是要說明下的 1.在屬性的值中,最好不...

掌握XML系列 四 建立格式良好的XML文件

前言 建立良好格式的xml文件,雖然寫了這些,其實,等到大家真正的看完之後美酒會發現,其實也很簡單的,我們這裡所做的是帶著大家全面的看看怎麼樣建立.這一節,我們講解有關屬性的問題.xml的屬性 關於屬性的問題,有幾點是要說明下的 1.在屬性的值中,最好不要使用 冒號 儘管可以有,但是最好不要,因為與...

建立格式良好的XML文件(上篇)

本文摘自 前言 xml聽起來,看起來就是一本標記語言,但是它確實是乙個很大的話題,值得我們去研究的 感謝大家對前一篇xml文章的關注 建立格式良好的xml文件,其實就是使得我們的xml文件能夠符合w3c的xml1.0規範,相信大家也想看w3c條條框框的規範,我們就從實際出發,來說說,怎麼樣寫xml文...