2014-03-27 103 views
1

是否有一個工具,像比較HTML文檔:比較兩個HTML文檔忽略多個和尾部空格

<p b="1" a="0 "> a  b 
c </p> 

(爲C字符串:"<p> a b\nc </p>"等於到:

<p a="0 " b="1">a b c</p> 

請注意:

  • 文本多個空格轉換到單個空格
  • 換行符轉化爲空格
  • 文本尾部和標題空格被剝離
  • 屬性放入一個標準順序
  • 屬性值沒有變化,包括尾部空格

上爲什麼我想要那

我正在努力Markdown Test Suite,旨在衡量markdo發動機的符合性和便攜性。

我們有降價輸入,預期的HTML輸出,並且想要確定生成的HTML輸出是否等於預期的輸出。

問題是Markdown是未指定的,所以我們無法直接比較兩個HTML字符串。

實際測試代碼爲here,如果您想嘗試解決方案,請修改run-tests.py#dom_normalize

事情我想

  • beautifulsoup。訂購屬性,但不能很好地處理空白?

    功能formatter正則表達式修改可能有效,但我沒有看到區分節點和屬性內部的方法。

    像這樣的Python唯一的解決方案將是理想的。

  • 尋找類似的isEqualNode()(不起作用,因爲忽略nodeVaue)+無頭的一些JS引擎JavaScript函數。找不到一個。

如果沒有什麼更好的,我只需要將自己的輸出格式化程序前端寫入某個HTML解析器。

回答