Python 如何删除xml标记之外的文本
我是python的新用户,正在尝试操作XML文件。如果XML标记之外有文本,则只有字符串。如下例所示:Python 如何删除xml标记之外的文本,python,xml,Python,Xml,我是python的新用户,正在尝试操作XML文件。如果XML标记之外有文本,则只有字符串。如下例所示: blhpxxxx[脚本模式]>显示系统日志服务器1 正在检索系统日志服务器。。。 问题是,我无法想象如何删除标记之外的所有文本 很抱歉,我没有详细说明我的问题,因为我说我是python世界的新手,但是,我找到了问题的解决方案 1——我得到的文件不是XML,它只包含文本中间的XML标签。以下是该结构的完整示例: HP BladeSystem板载管理员 (C)版权所有2006-2013 He
blhpxxxx[脚本模式]>显示系统日志服务器1
正在检索系统日志服务器。。。
问题是,我无法想象如何删除标记之外的所有文本
很抱歉,我没有详细说明我的问题,因为我说我是python世界的新手,但是,我找到了问题的解决方案
1——我得到的文件不是XML,它只包含文本中间的XML标签。以下是该结构的完整示例:
HP BladeSystem板载管理员 (C)版权所有2006-2013 Hewlett-Packard Development Company,LP blhp0001[脚本模式]>显示系统日志服务器1 正在检索系统日志服务器 系统日志服务器1:<EVENT_LOG DESCRIPTION="Integrated Management log">
< EVENT
SEVERITY = " Repaired "
CLASS = " Rack Infrastructure "
Last_update = " 05/15/2011 15:58 "
INITIAL_UPDATE = " [NOT SET ] "
COUNT = " 11 "
DESCRIPTION = " Server Blade Enclosure Inadequate Power To Power On : Not Enough Power ( Enclosure Serial Number " , " Slot 6 ) "
/ >
< EVENT
SEVERITY = " Informational "
CLASS = " Rack Infrastructure "
Last_update = " 05/09/2011 24:18 "
INITIAL_UPDATE = " 05/09/2011 12:18 "
COUNT = "1"
DESCRIPTION = " LAN Settings Changed ( USE844HBNT Enclosure Serial Number ) "
/ >
有了这个,我可以删除标签之间的所有文本不是,或者是一个标签
感谢您的关注。正如第一条评论所指出的,它实际上不是xml文件 但是您可以使用一个带有正则表达式的短脚本来创建xml文件。给定示例字符串,您可以基于以下代码创建这样的脚本:
import re
text = 'blhpxxxx [SCRIPT MODE]> show syslog server 1 Retrieving syslog server (s) ... <EVENT SEVERITY = "Repaired" /> '
print(re.search("\<.*\>", text).group())
重新导入
text='blhpxxxx[脚本模式]>显示正在检索系统日志服务器的系统日志服务器1..'
打印(重新搜索(“\”,text).group())
根据周围文本的结构,您可能需要使用更复杂的正则表达式。如果标记外有文本,则根据定义,它不是
xml
文件。您好,crs,感谢您的帮助,我相信我不需要复杂的正则表达式,在本例中,文件结构没有太大变化。还感谢您澄清我的文件不是xml。
import re
text = 'blhpxxxx [SCRIPT MODE]> show syslog server 1 Retrieving syslog server (s) ... <EVENT SEVERITY = "Repaired" /> '
print(re.search("\<.*\>", text).group())