Re: [問題] XML檢查
※ 引述《g66932007 (孤單的人)》之銘言:
: 請問XML有tag檢查的方式嗎??
: 目前系統是User下載XML檔(固定的tag)修改其內容,
: 再上傳轉成pdf檔,可是User往往都把tag弄亂,造成轉成pdf時出現亂碼= =
: 所以請問一下是否可以上傳時檢查每個tag名稱.順序是否正確.......
: 還是有比較好的方式請不吝指教 謝謝~
目前理解你的需求大概就是將固定的XML檔格式傳給User讓User輸入資料在回傳處理
首先轉為Pdf的作用由於沒說明所以就先當作你一定要這樣轉換(XML => PDF)
User會弄亂這點的確不好處理,就像車輛銷售員當然是假設買主會開車
難道銷售員還要去擔心買主不會開車要怎麼辦?這是題外話了
XmlDocument類別的簡單介紹
http://0rz.tw/VbQPS
MSDN的官方介紹
http://0rz.tw/aNXax新視窗開啟頁面
工作時學習XML服用上面兩個介紹花三個小時左右學會XML讀取與寫入
其中XmlNode應該有你需要的資料
-----------------------------
"印象中"讀取根節點(你指的應該是這個)不需要特地指定ID
與其怕User會去改名稱不如怕他們會把XML的分層架構刪除或打亂造成無法讀取
比較好的方式是提供使用者一個UI不要讓使用者直接碰程序處理的資料
例如提供網頁、小程式等等...用這些UI來負責處理XML檔再回傳
再來讀取node name的方式可以使用遞迴方式一層一層下去找
遞迴請參考MSDN的尋找檔案範例,原則上概念跟結構是差不多的
這部分我就不直接提供程式碼了,自己思考探索並得到的果實是很鮮美的
如何:以 C# .NET 遞迴搜尋目錄
http://0rz.tw/LHEsc
以下是如果我要驗證XML內的結構是否正確時的做法(沒實際寫過可能流程有錯誤)
1.讀取XML檔進Reader
2.使用遞迴方式將各層的節點分開存放到各個陣列Node中(子節點、孫節點等等...)
3.從外層到內層依序驗證數量、名稱、屬性等等...
我會選擇將各層分開存放而不是全部存入List,可以先從外層依序驗證到內層
並且從數量、名稱、屬性順序驗證,如果一口氣全部進入List然後用迴圈全部
驗證還蠻浪費效能時間,而且全部進入List你想如何分出各層我就不清楚了
假設你的架構子節點叫 Apple 孫節點叫 Count
但是使用者把子節點改為 Count 孫節點叫Apple
但是進入List用迴圈全部驗證都是正確的(因為兩者都存在)
因為沒去驗證他在不在正確的層上
當然如果你完全沒辦法確定或太多太多層的話
就推薦使用二維陣列來處理了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.85.47
推
01/12 23:19, , 1F
01/12 23:19, 1F
→
01/12 23:20, , 2F
01/12 23:20, 2F
※ 編輯: m339606 來自: 114.33.85.47 (01/13 00:11)
→
01/13 00:15, , 3F
01/13 00:15, 3F
→
01/13 00:17, , 4F
01/13 00:17, 4F
→
01/13 00:19, , 5F
01/13 00:19, 5F
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章