關於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元素即可
publicvoid
createxml()
2. 對於純單層級的命名空間,就是x0標籤中只有x0,x1則在其下乙個標籤
<?xml version="1.0" encoding="
utf-8
"?>
"">
"">
icc01
"">
"">
1230000
如果要建立這種格式的xml,總的來說和第一種的思路是完全一樣,我理解的不同就是,層級關係改變了,所以在寫操作的時候,部分**需要對應的調整,只要掌握了思想,不管巢狀多少層,一層一層的進行寫入,進行除錯,就不會出錯,如下
publicvoid
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文...