測試之路3 對照XML檔案2

2021-09-06 21:16:25 字數 2026 閱讀 2059

high

-1 source00

0020

000 lc1

12000

這裡能夠把streams當做全部的根,可是它以下有stream,stream以下還有h264和aac兩個節點,h264又有非常多節點 ,而h264本身並沒有引數值。

所以我得到的children僅僅是得到stream,我須要遍歷孩子,直到它沒有某個孩子不再有孩子,再返回。

這麼想來,是自己曾經學資料結構學的不好,我實際要做的就是遍歷樹的每一片葉子。於是,我開始遍歷整個xml樹了。

但是我該怎麼遍歷,還是像資料結構上說的那樣,先根,中根,後根?事實上,我並不須要一起去遍歷兩個xml樹,我僅僅要遍歷乙個xml樹(原始檔),然後去比對目標檔案的xml樹就能夠了。由於我發現,這我這裡目標檔案的葉子比原始檔的多;且目標檔案的葉子在普通情況下都包含目標檔案。所以我以原始檔為參照物,去尋找目標檔案是否存在該節點,假設不存在,則錯誤;再去比對引數,假設引數不同,則錯誤。

xml檔案裡可能存在名字同樣,可是實際位置不同的節點,所以對照的節點必須相對位置也同樣,所以這也減少了對照難度。所以我能夠簡單寫出對照的測試程式:

//簡單對例如法:

//傳遞引數:原始檔,返回的目標檔案

//返回值:true表示xml對照一樣

//改動日期:2014.5.26 tanlee

//對照策略:假設原始檔有標籤,尋找目標檔案是否有相應標籤,個數假設不同樣

public boolean ******compare(document sourcedoc,document targetdoc)

else if(ssvalue == null && tvalue == null)

}if(j == length2) //到達迴圈次數,還是沒有找到,說明沒有值相應,能夠返回錯誤}}

else if(length1 == length2) //長度同樣的情況下,進行對照,對照的條件是,假設目標檔案能找到且值同樣則返回true

else

break;

}ssvalue = sourcedoc.getelementsbytagname(sname).item(i).getfirstchild().getnodevalue();

tvalue = targetdoc.getelementsbytagname(sname).item(i).getfirstchild().getnodevalue();

if(ssvalue != null&&!ssvalue.equals(tvalue))//表示找不到

else }}

else

}return true;

}

只是,返回的結果都是false,這讓我驚呆了,難道是我又寫錯了?我僅僅能把遍歷到的節點輸出來,果真節點都不在,這是什麼原因?

老大這個時候提醒了我,解析xml的時候須要把xml檔案進行格式化,我把原始檔和目標檔案匯出來看一看,乙個是3kb,還有乙個是5kb,非常顯然就算某些元素資訊有區別,檔案大小也不會相差如此之大,所以我開啟看了一下:原始檔沒有空格和回車,而目標檔案有非常多空格和回車,我於是理解他們的格式是不一樣的。

須要自己去標準化嗎?好像不用了,裡面已經寫好了方法。是用正則,我不是非常懂,至少用了再去學吧,**例如以下:

//標準化傳入的xml檔案的字串

//傳遞引數:原始檔的string,返回的true

//返回值:改動過的string

//改動日期:2014.5.29 tanlee

public string standardxml(string xml)

這樣就基本實現了功能,最終能返回一些true了,通過人工對照發現自己的自己主動化測試程式儘管簡單,但還是能實現功能的。

可是,問題又來了,怎麼給自己的原始檔加入新的標籤,以適應server那邊新增的引數?看來改進的地方還非常多,僅僅能下次再改了。

測試之路3 對比XML檔案2

其實上一次對比xml檔案一直出錯,其實我忽略了乙個很簡單的問題 我從根目錄下得到的所有孩子,是這個根下的,而xml檔案的組織形式如下,孩子也有可能是其他的根 high 1 source00 0020 000 lc1 12000 這裡可以把streams當做所有的根,但是它下面有stream,stre...

Cocos2d x v2和v3對照手冊

稍過段時間,打算把拇指接龍遊戲教程案例修改為當前最新的cocos studio 2.0.2版本 cocos2d x 3.x 所以,打算先搜尋一部分資料以便加快速度。下面引文來自於 但這篇文章有一些老了,還有一些內容已經在 cocos2d x 3.3 中過時。因此,我並沒有進行完全對照翻譯。對原文中的...

免費 中國省級行政單位ISO 3166 2對照表

iso名稱 行政區名稱 型別 old cn ah anhui sheng 安徽省 省 cn 34 cn bj beijing shi 北京市 直轄市 cn 11 cn cq chongqing shi 重慶市 直轄市 cn 50 cn fj fujian sheng 福建省 省 cn 35 cn g...