0

下面是一个 TTML 文件的简化示例,在我看来它就像一个特殊格式的 XML 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:nttm="http://www.netflix.com/ns/ttml#metadata" xmlns:ttp="http://www.w3.org/ns/ttml#parameter" xmlns:tts="http://www.w3.org/ns/ttml#styling" ttp:timeBase="media" ttp:version="2" tts:extent="1280px 720px" xml:lang="zh-Hans">
    <head>
        <metadata nttm:movieId="81170257" nttm:packageId="1618461" nttm:schemaVersion="0" nttm:textType="SUBS" nttm:uuid="9c50201b-f11e-4665-9944-3bda07268f29"/>
    </head>
    <body>
        <div begin="00:00:06.833" end="00:00:09.958" tts:extent="479px 51px" tts:origin="407px 597px">
            <image src="1.png"/>
        </div>
        <div begin="00:00:26.083" end="00:00:29.250" tts:extent="431px 46px" tts:origin="431px 602px">
            <image src="2.png"/>
        </div>
        <div begin="00:14:27.125" end="00:14:27.958" tts:extent="161px 46px" tts:origin="566px 602px">
            <image src="165.png"/>
        </div>
    </body> 
</tt>

这是我正在运行的代码:

import lxml.etree as ET
tree = ET.parse("sample_ttml2.xml")
root = tree.getroot()
print(root.tag)
for div in root.iterfind(".//div"):
    print(div)
for div in root.iterfind("div"):
    print(div)

这输出:

{http://www.w3.org/ns/ttml}tt

我期待的是 tt 标签,没有这个命名空间的东西。当我尝试迭代时,我什么也得不到,即使使用 XPath。我认为解析它有一些问题,但我不知道为什么。我必须编写自己的解析器吗?

4

0 回答 0