我需要處理很多可能相當複雜的傳入XML。典型情況如下:處理複雜的XML
<SomeNode>
<Request>
<Id>1</Id>
<!-- Request specific stuff -->
</Request>
<Request>
<Id>2</Id>
<!-- Request specific stuff -->
</Request>
<Response>
<Id>1</Id>
<!-- Feedback on request no. 1 -->
</Response>
<Response>
<Id>2</Id>
<!-- Feedback on request no. 2 -->
</Response>
</SomeNode>
請注意,SomeNode不一定是頂級節點。我必須將這些請求與已存儲在我的數據庫中的請求進行匹配,即如果傳入XML中的請求與db中的記錄不匹配,則需要採取措施。通常我會要求用戶手動匹配未識別的XML部分,並根據這些手動規則重新處理XML。任何「錯誤」(包括失敗和成功)都應該相應地記錄下來,最好具有某種程度的細節。
最後,值得指出的是,有很多不同類型的XML進入我的系統 - 硬編碼處理邏輯可能不是我想要的。爲了處理新的消息而重新編譯和發佈新的可執行文件太麻煩了。當然,時間就是金錢。實現新類型的XML應儘可能快速和可靠。
目前,我對技術比對特定實現更感興趣。 XQuery是一個很好的開始嗎?或者這可能是矯枉過正? XPath 1.0能夠讓我們一路領先嗎?還是我們必須使用2.0?也許我們根本不需要任何複雜的處理,這樣基本的XML解析就足夠了?你們有什麼感想?
對於這篇長文章,我很抱歉,但我們都知道GIGO的原則嗎? :)
您使用哪種語言?也許LibXMLParser可以爲你完成這項工作。 – junmats 2009-10-14 07:14:36
我們的店每天都使用德爾福。我已經使用MSXML DOM API進行了模式驗證,但是,在這一點上什麼都沒有解決。我們正在考慮不同的腳本替代方案,只是爲了使XML邏輯易於維護,並與可執行文件分開。 – conciliator 2009-10-14 07:33:45