2013-05-19 34 views
0

我們使用構建於ASP.NET MVC之上的自定義框架在運行時從對象模型生成HTML,而無需編寫任何視圖。這種方法在允許快速應用程序開發並在多個應用程序中保持統一的外觀和感覺方面取得了成功。使用正則表達式處理*已知結構的HTML *

但是,對於我們當前應用程序中的幾頁,框架已經生成了無內容的無關h2和h3標籤,這將導致應用程序失敗的QA測試。

唯一可行的長期解決方案是修復框架。但是我們應該在幾天內去QA,並且我很想用正則表達式去除呈現的HTML中的違規標籤。

我意識到這是一個混亂,但它是可行的作爲一個短期的解決方案,直到我們找出爲什麼框架行爲不端?請注意,我的小組(構建應用程序)與維護框架的小組不同。後一組可能會明天解決這個問題,或者他們可能會在一個月內解決 - 我無法控制時間。

幾個方面的考慮:

  1. 人們普遍不贊成使用正則表達式來處理HTML。但是,雖然我明白正則表達式不足以處理解析任意HTML的一般情況,但使用正則表達式來修改其確切結構已知的HTML是否真的有問題?

  2. 鑑於此步驟將在每次頁面加載時執行,這可能是否會導致顯着的性能成本?我們正在尋找在這裏剝離兩個或三個標籤。

在此先感謝!

回答

3
  1. 沒有
  2. 記住,你的正則表達式不知道,你只有2或3的細節的地方更換和將處理所有的HTML內容。請記住,如果你想刪除像<h2></h2><h3></h3>這樣的東西,你不需要一個正則表達式,你可以使用一個簡單的字符串替換。如果您知道這些標籤在樹中的位置,您可以輕鬆使用xpath或任何DOM功能來查找並刪除它們。您必須進行測試才能找到最佳方式。
0

在QA測試中作弊隱藏了其他組的問題?質量保證正是應該發現這類問題以便糾正的問題。

在另一方面,具有QA文字的空標籤是有些同樣糟糕,但讓忽略了一點:

  1. 如果你知道確切的東西去掉,正則表達式是確定的。使用編譯好的正則表達式(簡單且正確編寫),它們的行爲與簡單字符串搜索一樣快。

  2. 性能影響可以忽略不計。它只是讓你通過QA,對吧? ... 對?

+0

我不會說我們在隱藏它,我們正在記錄它。我們的經理問我們是否可以提供解決方法,以便項目進度不會出現這樣一個微不足道的問題。是的,質量保證是繁瑣的,空的標題將使可訪問性測試人員適合。 – user17777