【问题标题】:How to do xml parsing in Python? [closed]如何在 Python 中进行 xml 解析? [关闭]
【发布时间】:2020-03-17 04:01:42
【问题描述】:

我有一个“.odf”文件。

我只想分离href的“Text/Chapter1.xhtml”。

我该怎么做?

这是示例。

我有一个“.odf”文件。

我只想分离href的“Text/Chapter1.xhtml”。

我该怎么做?

这是示例。

<?xml version="1.0" encoding="utf-8"?>
<package version="2.0" unique-identifier="BookId" xmlns="http:/pf">
  <metadata xmlns:dc="http:ts/1.1/" xmlns:opf="ht200pf">
    <dc:identifier opf:scheme="ISBN" id="BookId">urn:19be</dc:identifier>
    <dc:title>samplesample</dc:title>
    <dc:creator />
    <dc:language>ko</dc:language>
    <meta name="cover" content="image" />
    <meta content="0.9.18" name="Sigil version" />
    <dc:date opf:event="modification" xmlns:opf="httopf">2019-12-12</dc:date>
  </metadata>
  <manifest>
    <item id="tocncx" href="toc.ncx" media-type="application/xhtml+xml"/>
    <item id="titlepage" href="Text/titlepage.xhtml" media-type="application/xhtml+xml"/>
    <item id="chapter1" href="Text/chapter1.xhtml" media-type="application/xhtml+xml"/>
    <item id="chapter2" href="Text/chapter2.xhtml" media-type="application/xhtml+xml"/>
    <item id="chapter3" href="Text/chapter3.xhtml" media-type="application/xhtml+xml"/>
    <item id="chapter4" href="Text/chapter4.xhtml" media-type="application/xhtml+xml"/>
    <item id="chapter5" href="Text/chapter5.xhtml" media-type="application/xhtml+xml"/>
    <item id="chapter6" href="Text/chapter6.xhtml" media-type="application/xhtml+xml"/>
  </manifest>
  <spine toc="tocncx">
    <itemref idref="titlepage"/>
    <itemref idref="chapter1"/>
    <itemref idref="chapter2"/>
    <itemref idref="chapter3"/>
    <itemref idref="chapter4"/>
    <itemref idref="chapter5"/>
    <itemref idref="chapter6"/>
  </spine>
</package>

【问题讨论】:

    标签: python xml beautifulsoup


    【解决方案1】:

    不知道有没有你想要的。

    from simplified_scrapy import SimplifiedDoc,req,utils
    html='''
    <?xml version="1.0" encoding="utf-8"?>
    <package version="2.0" unique-identifier="BookId" xmlns="http:/pf">
      <metadata xmlns:dc="http:ts/1.1/" xmlns:opf="ht200pf">
        <dc:identifier opf:scheme="ISBN" id="BookId">urn:19be</dc:identifier>
        <dc:title>samplesample</dc:title>
        <dc:creator />
        <dc:language>ko</dc:language>
        <meta name="cover" content="image" />
        <meta content="0.9.18" name="Sigil version" />
        <dc:date opf:event="modification" xmlns:opf="httopf">2019-12-12</dc:date>
      </metadata>
      <manifest>
        <item id="tocncx" href="toc.ncx" media-type="application/xhtml+xml"/>
        <item id="titlepage" href="Text/titlepage.xhtml" media-type="application/xhtml+xml"/>
        <item id="chapter1" href="Text/chapter1.xhtml" media-type="application/xhtml+xml"/>
        <item id="chapter2" href="Text/chapter2.xhtml" media-type="application/xhtml+xml"/>
        <item id="chapter3" href="Text/chapter3.xhtml" media-type="application/xhtml+xml"/>
        <item id="chapter4" href="Text/chapter4.xhtml" media-type="application/xhtml+xml"/>
        <item id="chapter5" href="Text/chapter5.xhtml" media-type="application/xhtml+xml"/>
        <item id="chapter6" href="Text/chapter6.xhtml" media-type="application/xhtml+xml"/>
      </manifest>
      <spine toc="tocncx">
        <itemref idref="titlepage"/>
        <itemref idref="chapter1"/>
        <itemref idref="chapter2"/>
        <itemref idref="chapter3"/>
        <itemref idref="chapter4"/>
        <itemref idref="chapter5"/>
        <itemref idref="chapter6"/>
      </spine>
    </package>'''
    doc = SimplifiedDoc(html)
    hrefs = doc.manifest.selects('item').select('href()')
    print (hrefs)
    href = doc.manifest.select("item#chapter1>href()")
    print (href)
    item = doc.manifest.select("item#chapter1")
    print (item)
    

    结果:

    ['toc.ncx', 'Text/titlepage.xhtml', 'Text/chapter1.xhtml', 'Text/chapter2.xhtml', 'Text/chapter3.xhtml', 'Text/chapter4.xhtml', 'Text/chapter5.xhtml', 'Text/chapter6.xhtml']
    Text/chapter1.xhtml
    {'id': 'chapter1', 'href': 'Text/chapter1.xhtml', 'media-type': 'application/xhtml+xml', 'tag': 'item'}
    

    【讨论】:

    • 正是我想分离“Text/chaper1~6.xhtml”。很抱歉让你感到困惑。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多