python - lxml.etree為什麼會自動加上</i>?
学习ing
学习ing 2017-06-22 11:52:40
0
1
777

正在學習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
学习ing

全部回覆(1)
Ty80

主要是因為

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。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板