Python 将XML字符作为字符串读入ElementTree

Python 将XML字符作为字符串读入ElementTree,python,xml,csv,elementtree,Python,Xml,Csv,Elementtree,我使用ElementTree将CSV文件与XML文档进行比较。如果标记与CSV中的第一个单元格匹配,脚本应更新标记。当我将XML导入到另一个程序(InDesign)时,标记需要有一个不间断的空格,以防止文本被包装 XML输入: <Table_title>fatal crashes by&#160;time of day</Table_title> <cell>data1</cell> <cell>data2</cell&g

我使用ElementTree将CSV文件与XML文档进行比较。如果标记与CSV中的第一个单元格匹配,脚本应更新标记。当我将XML导入到另一个程序(InDesign)时,标记需要有一个不间断的空格,以防止文本被包装

XML输入:

<Table_title>fatal crashes by&#160;time of day</Table_title>
<cell>data1</cell>
<cell>data2</cell>
<cell>data3</cell>
但是,当我使用
ET.parse('file.XML')
将XML读入ElementTree脚本时,它似乎将字符呈现为一个不间断的空格:

<Table_title>fatal crashes by time of day</Table_title>
<cell>data1</cell>
<cell>data2</cell>
<cell>data3</cell>
<代码>按时间划分的致命车祸 数据1 数据2 数据3 这正是它应该做的(我认为)。但在这个场景中,我实际上想要
 
以字符串形式呈现,使其与CSV的第一个单元格相匹配(因为当读入CSV时,它将其解释为字符串:
'fatal crasks by ;time of day'

有没有办法:

  • 强制XML脚本将非中断空格作为字符串而不是转义字符读取:
    fatal crasks by ;一天中的时间
  • 强制XML脚本读取CSV并将字符作为转义字符而不是字符串呈现:
    “按时间致命崩溃”,data1、data2、data3
  • 下面是发生的情况

    将此XML读入ElementTree:

    <Table_title>fatal crashes by&#160;time of day</Table_title>
    

    这对于连字符和破折号非常有效。但我还想包括空格和非中断空格。但ElementTree只是读取它们,将它们解释为一个空格,并将它们作为空格而不是 ;或 ;。我知道这就是它应该做的,但是我需要在输出中把这些实体作为字符串来维护……不,ElementTree不进行任何转换和“解释”。DOM中的字符串不包含空格(字符代码32),而是包含实际的NBSP字符(字符代码160)。它们只是在打印到屏幕上时看起来一样。
    <Table_title>fatal crashes by&#160;time of day</Table_title>
    
    import csv
    import xml.etree.ElementTree as ET
    
    # open your XML and CSV files...
    
    for row in csv_reader:
        temp = ET.fromstring('<temp>' + row[0] + '</temp>')
        print(temp.text)
    
        # compare temp.text to your XML