我必須處理有時包含非轉義&的XML數據,並且我無法讓生產者將其轉義爲&或放入CDATA部分。正則表達式來清理XML
現在我正在尋找一個正則表達式來替換&和& amp;如果它不是一個實體的一部分。例如:&(?!(amp | lt |))
不幸的是,我的編程環境只支持「擴展的POSIX 1003.2正則表達式」(見http://www.kernel.org/doc/man-pages/online/pages/man7/regex.7.html),它似乎缺少not操作符「!」需要在這裏。
任何想法如何制定必要的正則表達式?
正確的「XML-ish」響應將通過驗證程序運行,並拒絕爲「未正確形成的XML」。令人遺憾的是,XML的設計者不允許這樣的事實,即在現實世界中,我們有時不得不忍受糟糕的輸入並使用它。 – Spudley 2010-12-16 10:03:26
@Spudley:我實際上是通過驗證器來運行XML文件的。多數民衆贊成我是如何注意到畸形的部分。不幸的是,其產生無效XML的Microsoft產品和他們的「標準」似乎意味着「可選」。 – 2010-12-16 10:20:26
呵呵。微軟呃?這個數字。 (越來越遠離主題,因爲商業支持是管理層爲購買微軟而經常付出的理由,所以我想知道MS是否準備爲您解決這個問題?當然不是。 – Spudley 2010-12-16 10:32:18