【问题标题】:parsing xliff file using lxml library使用 lxml 库解析 xliff 文件
【发布时间】:2015-07-19 11:08:18
【问题描述】:

我无法解析这个 xliff 片段:

<source>text1 <g id="1">text2</g> text3 <x id="2"/><x id="3"/>text4</source>

我想要一个在源标签上运行并填充类似的迭代方法

parsed_source[0]='text1'
parsed_source[1]='<g id="1">text2</g>'
parsed_source[2]='text3'
parsed_source[3]='<x id="2"/>'
parsed_source[4]='<x id="3"/>'
parsed_source[5]='text4'

这样我就可以在需要时再次迭代 xml 片段 [1]、[3] 和 [4]...

lxml 为例:

from lxml import etree
tree = etree.iterparse('aFile.xlf')
for action, elem in tree:
    print("%s: %s %s" % (action, elem.tag, elem.text))

我得到类似的东西:

end: source text1
end: g text2
end: x None
end: x None

我无法解析text3text4...我该怎么做?谢谢

【问题讨论】:

    标签: python xml parsing lxml xliff


    【解决方案1】:

    您需要考虑tail 属性(元素后面的文本)。在此处阅读:http://infohost.nmt.edu/tcc/help/pubs/pylxml/web/etree-view.html

    以下 sn-p(对您的代码稍作修改)演示了它:

    from lxml import etree
    
    tree = etree.iterparse('aFile.xlf')
    for action, elem in tree:
        print("%s: %s %s %s" % (action, elem.tag, elem.text, elem.tail))
    

    输出:

    end: g text2  text3 
    end: x None None
    end: x None text4
    end: source text1  None
    

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 2020-03-28
      • 2012-04-09
      • 1970-01-01
      • 2011-04-03
      相关资源
      最近更新 更多