首頁  >  問答  >  主體

python - lxml.etree為什麼會自動加上</i>?

正在學習lxml,程式碼如下:

from lxml import etree
text = '''
<i class="cell maincell">
    <p class="title">
        <a target="_blank" href="https://itjuzi.com/company/60321">
            <span>洋鼹鼠</span>
        </a>
    </p>
    <p>
        <span class="tags t-small c-gray-aset">
            <a href="https://itjuzi.com/investevents?scope=145">电子商务</a>
        </span>
        <span class="loca c-gray-aset t-small">
            <a href="https://itjuzi.com/investevents?prov=天津">天津</a>
        </span>
    </p>
</i>
'''
html = etree.HTML(text)
print(etree.tostring(html,encoding='utf-8').decode('utf-8'))

輸出如下:

<html><body><i class="cell maincell">
    </i><p class="title">
        <a target="_blank" href="https://itjuzi.com/company/60321">
            <span>洋鼹鼠</span>
        </a>
    </p>
    <p>
        <span class="tags t-small c-gray-aset">
            <a href="https://itjuzi.com/investevents?scope=145">电子商务</a>
        </span>
        <span class="loca c-gray-aset t-small">
            <a href="https://itjuzi.com/investevents?prov=天津">天津</a>
        </span>
    </p>

</body></html>

主要不懂為什麼<i>標籤那裡會出錯呢?請問怎麼解決這個問題?謝謝~

学习ing学习ing2698 天前762

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-06-22 11:54:40

    主要是因為

    p元素
    內容分類 Flow content, palpable content.
    允許的內容 Phrasing content.
    允許的父元素任何接受flow content的元素

    i元素
    Content catergories Flow content, phrasing content, palpable content.
    允許量 phrasing content.

    很顯然P元素的父元素應該是flow content類型的,然而i並不符合條件,也就是說這是不合規範的。
    解決辦法就是i直接換成p。

    回覆
    0
  • 取消回覆