繁体   English   中英

将unicode转换为xml字符串

[英]Convert unicode to xml string

我有一个unicode字符串,定义为

data= u'<project> <DataRuleDefinitions> <DataRuleDefinition name="dummy_def">
 <ExecutableRule name="rule_dummy_def" excludeDuplicates="false" 
  folder="14_A_Loan_Loss_Projections;All"><Bindings> <Binding var="field"><Columnname="CLL_IA_SNAPSHOT.prod_files.prod_files."CLL_201706.csv".AccrualStatusChangeDate"/> </Binding> </Bindings> </ExecutableRule> </DataRuleDefinition> 
 </DataRuleDefinitions> </project>'

我确实尝试使用以下思路将其转换为xml:

import xml.etree.ElementTree as ET
 tree = ET.fromstring(data)

但是我遇到以下错误:
ParseError: not well-formed (invalid token): line 1, column 326

我能否得到帮助以纠正此错误并将此unicode转换为xml?

有两个主要问题,而且似乎都不是从Unicode到XML转换的问题。 您的错误所提到的问题是格式不正确的XML,从而导致ParseError

问题在于以下几行XML:

<Columnname="CLL_IA_SNAPSHOT.prod_files.prod_files."CLL_201706.csv".AccrualStatusChangeDate"/>

元素名称中不允许带有等号,请将此数据分配给val属性(属性名称可以是任何东西):

<Columnname val="CLL_IA_SNAPSHOT.prod_files.prod_files."CLL_201706.csv".AccrualStatusChangeDate"/>

仍然有一个问题。 引用val周围,​​但也引用val的值。 我们可以删除它们,对其进行转义或使用其他引号封装:

<Columnname val="CLL_IA_SNAPSHOT.prod_files.prod_files.'CLL_201706.csv'.AccrualStatusChangeDate"/>

现在您应该没有问题了。 如果您想检查XML是否良好,可以使用在线XML漂亮打印机 ,其中有很多 他们应该告诉您XML格式是否不正确。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM