我有一个xml文件。 它看起来像
<root>
<Group>
<ChapterNo>1</ChapterNo>
<ChapterName>A</ChapterName>
<Line>1</Line>
<Content>zfsdfsdf</Content>
<Synonyms>fdgd</Synonyms>
<Translation>assdfsdfsdf</Translation>
</Group>
<Group>
<ChapterNo>1</ChapterNo>
<ChapterName>A</ChapterName>
<Line>2</Line>
<Content>ertreter</Content>
<Synonyms>retreter</Synonyms>
<Translation>erterte</Translation>
</Group>
<Group>
<ChapterNo>2</ChapterNo>
<ChapterName>B</ChapterName>
<Line>1</Line>
<Content>sadsafs</Content>
<Synonyms>sdfsdfsd</Synonyms>
<Translation>sdfsdfsd</Translation>
</Group>
<Group>
<ChapterNo>2</ChapterNo>
<ChapterName>B</ChapterName>
<Line>2</Line>
<Content>retete</Content>
<Synonyms>retertret</Synonyms>
<Translation>retertert</Translation>
</Group>
</root>
我试着用这种方式。。。。。。。
root = ElementTree.parse('data.xml').getroot()
ChapterNo = root.find('ChapterNo').text
ChapterName = root.find('ChapterName').text
GitaLine = root.find('Line').text
Content = root.find('Content').text
Synonyms = root.find('Synonyms').text
Translation = root.find('Translation').text
但它显示出一个错误
ChapterNo=root.find('ChapterNo').text
AttributeError: 'NoneType' object has no attribute 'text'`
现在我想让所有的ChapterNo,ChapterName,等等都使用元素树,我想把这些数据插入数据库。。。。有人能帮我吗?
Rgds
尼米
要解析简单的两级数据结构并为每个组组合一个dict,只需执行以下操作:
听着,妈,没有xpath!
ChapterNo
不是root
的直接子级,因此root.find('ChapterNo')
不起作用。您需要使用xpath语法来查找数据。此外,ChapterNo、ChapterName等也有多次出现,因此您应该使用
findall
,并遍历结果以获得每个结果的文本。等等。
下面是一个使用^{} 定义对象的小示例,该对象将提取数据并将其存储在sqlite数据库中。
使用方法如下:
我已经在xml数据中测试了这段代码,它运行良好,将所有内容都插入到数据库中。
相关问题 更多 >
编程相关推荐