我想将XML文件转换为CSV文件。我的XML文件由不同的标记组成,我选择了一些对我的工作有用的标记。我只想访问文本标记之间的文本内容。我的问题是我不知道如何访问CDATA内容。因为某些文档中的文本有一个子图像,当我运行代码时,它只解析图像标记,并在我使用pandas读取CSV文件时显示NaN。我搜索了CDATA,但找不到任何标记来告诉解析器跳过图像标记并仅提取CDATA部分中的内容。此外,我尝试从文本中删除图像标记以解决问题,但当我这样做时,它删除了所有文本内容,以及CDATA部分
我的XML模式如下所示:
<root>
<DOC>
<TEXT>
<IMAGE>/1379/791012/p18-1.jpg</IMAGE>
<![CDATA[The section I want to access to]]>
</TEXT>
</DOC>
</root>
下面是我的解析代码:
def make_csv(folderpath, xmlfilename, csvwriter, csv_file):
rows = []
#Parse XML file
tree = ET.parse(os.path.join(folderpath, xmlfilename))
root = tree.getroot()
for elem in root.findall("DOC") :
rows = []
sentence = elem.find("TEXT")
if sentence != None:
sentence = re.sub('\n', '', sent.text)
rows.append(sentence)
csvwriter.writerow(rows)
csv_file.close()
谢谢你的帮助
下面的方法似乎有效。代码处理文本下的图像和文本下没有图像的情况
输出
相关问题 更多 >
编程相关推荐