首页 > 解决方案 > 解析 Tableau xml 不保留原始文件

问题描述

我尝试以编程方式处理 Tableau 桌面文件(尽管它们的扩展名为 .twb,但它们只是 xml 文件)。我对不保留原​​始内容的 lxml 有很多问题。为了便于解释,假设您有一个 test.xml 文件,其中包含以下文本:

  <column caption='Choix Découpage'   name='[Aujourd&apos;Hui Parameter (copy 2)]'>
    <member name='Nb d&apos;annulations'  default-format='n#,##0.00&quot; annulations&quot;;-#,##0.00&quot; annulations&quot;' />
        <run>&#10;:</run>
    <calculation  formula='iif([FAC_TYPE] = &apos;Avoir&apos; , [Calculation_1378101492427309057], null)' />
    <alias key='&quot;Billetterie Ferroviaire&quot;' value='Train ticketing' />
  </column>

现在让我们解析它:

tree = etree.parse('test.xml')
root = tree.getroot()
print(etree.tostring(root,pretty_print=True,).decode("utf-8"))

当您运行代码时,我们可以注意到:

我怎么能保留原件?(尽管显示了所有自动操作的无用更改,但当我尝试使用 git 检查差异时,这对我有很大帮助)

编辑:当我运行以下代码时,我注意到另一个问题:

[node.attrib['key'] for node in root.xpath("//alias")]

我得到了结果:['"Billetterie Ferroviaire"']如果我正在寻找属性“key”是原始节点 &quot;Billetterie Ferroviaire&quot;root.xpath('//[@key="Billetterie Ferroviaire"])不起作用)的节点,我现在无法使用 xpath 进行查询

标签: python-3.xlxml

解决方案


推荐阅读