Python 将XML字符作为字符串读入ElementTree
我使用ElementTree将CSV文件与XML文档进行比较。如果标记与CSV中的第一个单元格匹配,脚本应更新标记。当我将XML导入到另一个程序(InDesign)时,标记需要有一个不间断的空格,以防止文本被包装 XML输入:Python 将XML字符作为字符串读入ElementTree,python,xml,csv,elementtree,Python,Xml,Csv,Elementtree,我使用ElementTree将CSV文件与XML文档进行比较。如果标记与CSV中的第一个单元格匹配,脚本应更新标记。当我将XML导入到另一个程序(InDesign)时,标记需要有一个不间断的空格,以防止文本被包装 XML输入: <Table_title>fatal crashes by time of day</Table_title> <cell>data1</cell> <cell>data2</cell&g
<Table_title>fatal crashes by 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'
)
有没有办法:
fatal crasks by ;一天中的时间
“按时间致命崩溃”,data1、data2、data3
<Table_title>fatal crashes by time of day</Table_title>
这对于连字符和破折号非常有效。但我还想包括空格和非中断空格。但ElementTree只是读取它们,将它们解释为一个空格,并将它们作为空格而不是 ;或 ;。我知道这就是它应该做的,但是我需要在输出中把这些实体作为字符串来维护……不,ElementTree不进行任何转换和“解释”。DOM中的字符串不包含空格(字符代码32),而是包含实际的NBSP字符(字符代码160)。它们只是在打印到屏幕上时看起来一样。
<Table_title>fatal crashes by 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