首页 > 其他 > 详细

如何利用正则表达式来查找xml所需的信息

时间:2020-12-05 09:32:09      阅读:50      评论:0      收藏:0      [点我收藏+]

 

 

  • 前提了解什么是正则表达式和xml

   正则表达式:正则表达式是对字符串操作的一种逻辑公式,用特定的表达式来搜索我们所需要的一些特定字符、及这些特定字符的组合。

    xml:可扩展标记语言,用来传输和存储数据(html是用来显示数据)。

    具体的知识点后期再整理,正则表达式的特点就是看起来容易,但是执行无从下手,所以还是得多进行操作练习。 

  •   具体实施步骤 
  1.  获取某个路径下的所有XML文件路径

      可能很多时候我们要捞一堆XML文件,这时候可以先用列表装入每一个XML的文件路径,再依此遍历获取里面的信息。

 

def get_next(package_dir):
    dirpaths = []
    for root, dirs, files in os.walk(package_dir):
        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        for file in files:
            path = os.path.join(root, file)
            dirpaths.append(path)
        for dir in dirs:
            path = os.path.join(root, dir)
            dirpaths.append(path)
    xml_list = []
    for xml_files in dirpaths:
        # 搜索xml文件
        if xml_files.endswith(.xml):
            xml_list.append(xml_files)
    # 获取的每个xm路径 列表
    return xml_list

 

  2.  遍历文件

      随笔的主要内容!利用正则表达式查找信息,先说一下我们要找什么?

      技术分享图片

      显而易见我们要找text=" ",双引号里面的内容。(若要查找含有意义的特殊字符要进行‘转意’-> ‘\‘)

      .  : 匹配除换行符 \n 之外的任何单字符

      * : 匹配前面的子表达式零次或多次

      ? : 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符

# 读取xml文件里面的text
def get_xml_text(xml_list_path):
    # 用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象
    re_text = re.compile(rtext="(.*?)")
    text_final = []
    with open(xml_list_path, r, encoding=utf-8) as xmlfile:
       # 通过 Pattern 对象提供的一系列方法对文本进行匹配查找
        text_list = re_text.findall(xmlfile.read()) # read获取文件所有内容
    for text_item in text_list:
        # text不能为空
        if text_item != ‘‘:     
            text_final.append(text_item)
    return text_final

    最终,text_final就是我们所要捞的值。

 

如何利用正则表达式来查找xml所需的信息

原文:https://www.cnblogs.com/blackpink/p/14088360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!