我正在嘗試構建一個驗證特定XML並輸出可讀結果的工具。我現有的PHP代碼使用DOMDocument :: schemaValidate來針對.xsd文件驗證XML,但錯誤消息不是很友好。在PHP中驗證XML並生成「可讀的」錯誤消息?
例如,讓我們假設我的XML看起來像下面的示例和緯度應該是一個小數:
<Person>
<FirstName>Bret</FirstName>
<Location>
<Address>123 Test Ave.</Address>
<Latitude></Latitude>
<Longitude>30.139338</Longitude>
</Location>
</Person>
該錯誤消息我目前會得到將是:
文件:: schemaValidate():元素'Latitude':''不是原子類型'xs:decimal'的有效 值。
我希望它說:
錯誤在XML 5號線:此人「佈雷」在他們的地址空緯度。您必須包含有效的谷歌縱橫以便我們處理此XML。
類似的問題已經被問過:
不過,我願意寫我自己用蠻力驗證代碼PHP或Perl如果DOMDocument :: schemaValidate不適合這項工作。請注意,我的錯誤消息需要引用存儲在父元素中的信息,例如我的示例中的「FirstName」字段。
我的問題是:什麼是創建此驗證工具的好方法?是否有任何現有的代碼庫或教程指向正確的方向?
謝謝!
感謝您的回覆。在選擇我接受的答案之前,我會看到其他建議。使用腳本識別標籤名稱大小寫問題可能是可能的,但我確實知道您來自哪裏。例如,缺少的結束標記可能很難追蹤到。 – clone45 2013-04-10 16:30:33
是的,當然。但是,你可以贊成;)也可以激勵他人回答。 – 2013-04-10 16:32:39