1
我正在研究使用libxml2
處理HTML文檔的小型閱讀應用程序。在處理HTML樹時,我會檢查每個text()
節點的祖先,以選擇合適的樣式。對於頭我使用查詢以下看到一個節點是否是頭或不:使用XPath和libxml2檢查祖先的最快方法
boolean(ancestor::*[
self::h1 or
self::h2 or
self::h3 or
self::h4 or
self::h5 or
self::h6])
隨着5 MB的書,它需要1.1秒通過。再加上兩個額外的重點查詢和代碼樣式(具有更多的節點名稱集合),它可以達到4.4秒。
根據蘋果的儀器,瓶頸行是:
xmlXPathObject *object = xmlXPathNodeEval(node, query, context);
我緩存context
加快速度。還有什麼我可以做得更快?
哇,謝謝你的提示!非常有用和關鍵。 –