我有一个包含单词和单词定义的XML文件。有些单词连接到带有定义的基本单词(例如“ahh”是基本单词,“ahhed”是没有定义标记的变形)。
以下是我正在解析的XML的pastebin示例:http://pastebin.com/H3TG0Kaq
我目前的代码目前如下:
from xml.dom.minidom import parse
import csv
def writeToCSV(myWords):
csvfile = open(r'xmlfile', 'w', encoding='utf-8')
fieldnames = ['hw', 'def']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
entries = myWords.getElementsByTagName("superentry")
for entry in entries:
try:
word = entry.getElementsByTagName("hw")[0].childNodes[0].data
except AttributeError:
print(entry, entry.firstChild)
for definition in entry.getElementsByTagName("def"):
try:
defValue = definition.childNodes[0].data
except AttributeError:
print(definition, definition.firstChild)
writer.writerow({'hw': word, 'def': defValue})
doc = parse(r'outputfile')
myWords = doc.getElementsByTagName("dps-data")[0]
# Get get each word entry
books = myWords.getElementsByTagName("superentry")
# Print each word
writeToCSV(myWords)
此脚本允许我从XML文件中显示<hw>
(单词)和<def>
(定义),但它不会打印出<hw>
标签。没有定义,只是跳过它们。
即使<def>
标记不存在,有没有办法打印标记数据?
我还想弄清楚如何打印出那些没有定义的变形词的“基础”词(<xrhw>aah</xrhw>
标签)