[英]Automatically correct invalid XML?
我目前在需要驗證正確的 XML 文件結構的項目上使用 SSIS。 特別是,我必須檢查 XML 文件中是否沒有丟失標簽,如果是,我必須重新組裝沒有標簽的這一行。 我會給你一個例子來更好地理解。
<?xml version="1.0"?>
<catalog>
<DATA>0000000061E82D821590010000409525CD</DATA>
<DATA>0000000061E82D8C163001000140AD0DF6</DATA>
<DATA>0000000061E82D9616E301000240776CAB</DATA>
<DATA> 0000000061E82DA0178001000340C56B6</DATA>
<DATA>0000000061E82DAA188001000440C0C7CB</DATA>
0000000061E82DDAEA4001000540BB9A276
</catalog>
例如在上面的 XML 中缺少一個<DATA>
標簽。 我對 XML 的創建沒有影響。我怎么會注意到缺少<DATA>
標記(數據行數不固定),然后檢索沒有標記的那一行?
例如在上面的 xml 中缺少一個<DATA>
標簽。 我對 XML 的創建沒有影響。
該解決方案可以是一套 SSIS 組件或 c# 腳本。
一般情況下不可能自動更正無效的XML。
術語更正
例如在上面的 XML 中缺少一個
<DATA>
標簽。
沒有缺少<DATA>
標記。 您可能是說0000000061E82DDAEA4001000540BB9A276
周圍應該有開始和結束DATA
標簽。 差別很大,因為如果只缺少一個標簽,“XML”就不會是格式良好的。 如果模式表明catalog
元素可能只有DATA
子元素,則 XML無效。
有關此重要區別的詳細說明,請參閱格式良好與有效 XML 。
不要嘗試自動更正無效的 XML
最佳做法是拒絕輸入並強制發件人/創建者修復文檔。 模式的全部存在理由是表達可依賴於處理數據的不變量。 違反這些不變量意味着所有的賭注都被取消了。
不要被窺視孔修復想法的表面簡單所誘惑
每個修復想法都意味着對模式中未表達的數據的假設,這很糟糕,因為:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.