首页 > 解决方案 > 使用多行属性解析 XML

问题描述

我正在创建一个 python 脚本来修改一个 xml 文件,假设我有这种标签:

<z:row MGFF_SCRIPT='
        If Variabili(&#x22;UFFICIOPA&#x22;) = &#x22;&#x22; Then
            elemento = &#x22;0000000&#x22;
        Else
            elemento = Variabili(&#x22;UFFICIOPA&#x22;)
        End If
        '/>

我需要访问 MGFF_SCRIPT 属性的值,对其进行修改,然后将其插入相同的位置;问题是当我获取属性 (Element.get(key)) 的值并将其保存在 py 字符串中时:它没有换行符/缩进,它是单行字符串,因此,当我将修改后的值放入属性中时并创建新的 xml,我将拥有属性 MGFF_SCRIPT,其内容写在一行中。因为内容是脚本,所以这种情况会产生很多问题。如何解析保留换行符/缩进的属性内容?

标签: pythonpython-3.xxmlparsinglxml

解决方案


XML 规范中的一条相当不幸的规则是,XML 解析器需要进行属性值规范化——这意味着属性值中的换行符被空格替换。除非您的 XML 解析器有一个选项来抑制这个(而且大多数都没有,因为规范要求它),否则您会被它所困扰。


推荐阅读