From 793e4cd4498fd66bc46e6503f4200cc003cf7698 Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 5 Mar 2025 12:35:32 +0800 Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9A=E7=A7=AF=E5=88=86=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E5=8A=9F=E8=83=BD=E4=B8=8A=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- point_trade/main.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/point_trade/main.py b/point_trade/main.py index 74e59d6..60cbe55 100644 --- a/point_trade/main.py +++ b/point_trade/main.py @@ -1,4 +1,5 @@ import logging +import re import tomllib from datetime import datetime @@ -51,14 +52,24 @@ class PointTrade: # # ''' # 解析 XML 数据 + # 解析 XML 数据 root = ET.fromstring(xml) + # 查找 元素并提取其文本内容 atuserlist_element = root.find('.//atuserlist') - atuserlist_content = atuserlist_element.text if atuserlist_element is not None else '' + atuserlist_content = (atuserlist_element.text if atuserlist_element is not None else '').strip() # 去除前后的所有空白字符 - # 去除前后的逗号,并按逗号分割成列表,然后转换成集合 - atuserlist_set = set(atuserlist_content.strip(',').split(',')) + # 由于 CDATA 内容前后有逗号,我们需要先去除它们,然后再分割字符串 + # 注意:这里我们假设 CDATA 内容只有前后的逗号是多余的,内部没有逗号需要保留 + atuserlist_content_no_commas = atuserlist_content.strip(',') # 实际上这里只会去除前后的逗号,不会去除换行符等其他空白字符 + # 如果需要去除换行符,可以再加一行: + atuserlist_content_no_commas = atuserlist_content_no_commas.replace('\n', '') + atuserlist_content_no_commas = re.sub(r'\s+', '', atuserlist_content_no_commas) + # 但由于您的 CDATA 示例中没有换行符,所以这行通常是不必要的 + + # 按逗号分割成列表,然后转换成集合 + atuserlist_set = set(atuserlist_content_no_commas.split(',')) # 输出集合 print("atuserlist 集合:", atuserlist_set)