python - lxml.etree为什么会自动加上加上</i>?
学习ing
学习ing 2017-06-22 11:52:40
[Python讨论组]

正在学习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)
PHP中文网

主要是因为

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。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号