我有一个XML文件,它需要一个“TAB”字符作为键的值。基于此链接Represent space and tab in XML tag我将其编码为&;009,而不是使用“\t”,因为它将其解释为包含两个字符“\”和“t”的字符串。在
我没有使用CDATA部分,因为它仍将TAB视为包含两个字符“\”和“t”的字符串
我的用例的示例XML文件如下所示
<?xml version="1.0" encoding="UTF-8"?>
<keys>
<key>
<name>key1</name>
<value>value1</value>
</key>
<key>
<name>key2</name>
<value>	</value>
</key>
<key>
<name>key3</name>
<value>2048</value>
</key>
</keys>
这是我现在有代码,不能处理这个制表符
^{pr2}$执行脚本后得到的输出是
'key1': 'value1',
'key2': '',
'key3': '2048',
但是当我在Python交互式解释器上执行它时
mobj = minidom.parse(path_to_xml_file)
mobj.getElementsByTagName("value")[1].childNodes[0]
我得到以下输出
<DOM Text node "u'\t'">
但是我不能把输出赋给变量。这一步不起作用
node = mobj.getElementsByTagName("value")[1].childNodes[0].data
但另一件奇怪的事是,当我在解释器上说node时,它正在打印'\t'!!在
node
u'\t'
为了查看这是否是一个真正的情况,制表符被存储在变量中,但没有显示出来,我使用它作为分隔符连接两个字符串。在
这在解释器中工作得很好,但在脚本中却不行,我通过:setlist选项在vim上看到了这个脚本的输出
谁能告诉我我所采取的方法有什么问题吗。感谢帮助!在
您正在呼叫
strip()
。这会剥离标签。别那么做。(或者,如果您需要去掉空格、换行符或其他特定的内容,但保留制表符,请使用特定参数调用它,如strip('\n')
。)下面是一个演示(伪造,因为您的示例XML无效,所以我无法测试它):
相关问题 更多 >
编程相关推荐