Python проверка на пустоту XML

Помогите пожалуйста как избавиться от ошибки:

ValueError: xpath does not return any nodes or attributes. Be sure to specify in xpath the parent nodes of children and attributes to parse. If document uses namespaces denoted with xmlns, be sure to define namespaces and use them in xpath.

Не могу понять как проверить файл на пустоту как в пример моего XML и кода ниже.

Приходит пустой XML, из-за него я получаю ошибку.

<?xml version="1.0" encoding="UTF-8"?> <table/>

Код:

import pandas as pd
import xml.etree.ElementTree as ET 


def READ_XML():
        DATA_TODAY = datetime.datetime.now() #определяем текущую дату и время
        file_path = r'C:\xxx\xxx2\1' #директория с файлом
        NAME_FILE = os.listdir(file_path)[0]# получение названия файла в директроии
        file_path2 = r'C:\xxx\xxx2\1\{}'.format(NAME_FILE)
        
        
      
        
        
        
        try:
            tree = ET.parse(file_path2)        
            XML_ERROR = 'OK'
            print(XML_ERROR)
            XML_FILE = pd.read_xml(file_path2) # чтение хмл
        except ET.ParseError:
            XML_ERROR = 'BAD'
            print(XML_ERROR)
        

Ответы (1 шт):

Автор решения: Amgarak

Просто проверяйте на наличие элементов в XML перед попыткой его парсинга.

import pandas as pd
import xml.etree.ElementTree as ET
import os
import datetime

def READ_XML():
    DATA_TODAY = datetime.datetime.now() # определяем текущую дату и время
    file_path = r'C:\Users\Amgarak\Desktop\xml' # директория с файлом
    NAME_FILE = os.listdir(file_path)[0] # получение названия файла в директории
    print(NAME_FILE)
    file_path2 = r'C:\Users\Amgarak\Desktop\xml\{}'.format(NAME_FILE)
    
    try:
        tree = ET.parse(file_path2)
        root = tree.getroot()
        
        if len(root) == 0 and not root.attrib: 
            XML_ERROR = 'BAD TREE'
            print(XML_ERROR)
        else:
            XML_ERROR = 'OK'
            print(XML_ERROR)
            XML_FILE = pd.read_xml(file_path2) 
    except ET.ParseError:
        XML_ERROR = 'PARSE BAD'
        print(XML_ERROR)

READ_XML()
→ Ссылка