python-3.x - 解析 Tableau xml 不保留原始文件
问题描述
我尝试以编程方式处理 Tableau 桌面文件(尽管它们的扩展名为 .twb,但它们只是 xml 文件)。我对不保留原始内容的 lxml 有很多问题。为了便于解释,假设您有一个 test.xml 文件,其中包含以下文本:
<column caption='Choix Découpage' name='[Aujourd'Hui Parameter (copy 2)]'>
<member name='Nb d'annulations' default-format='n#,##0.00" annulations";-#,##0.00" annulations"' />
<run> :</run>
<calculation formula='iif([FAC_TYPE] = 'Avoir' , [Calculation_1378101492427309057], null)' />
<alias key='"Billetterie Ferroviaire"' 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”是原始节点 "Billetterie Ferroviaire"
(root.xpath('//[@key="Billetterie Ferroviaire"])
不起作用)的节点,我现在无法使用 xpath 进行查询
解决方案
推荐阅读
- azure - 创建开发测试实验室 VM 时出现 Azure Pipeline Key Vault 问题
- css - 当我们最小化或最大化图像无法更改的站点时,在css中设置静态背景图像大小?
- java - Java8-Stream:没有类型变量的实例
- react-native - 如何在 React Native 中创建类似 html 的导航下拉菜单?
- reactjs - 几秒钟后值更改后如何使用油门功能?
- python - 如何获取列表中每个 ID 的最后日期?
- javascript - Javascript继承(超级)
- postgresql - 配置 postgresql 失败,没有 64 位整数类型
- assembly - 'sed' 脚本将 avr-asm 转换为 arm-gnu 注释
- blazor - Blazor 继承与 ChildContent RenderFragments?