|
|
1
4
使用expat或其他XML解析器;考虑到您处理的是XML数据,它比其他任何东西都更明确。 但是,请注意,XML元素名称不能以数字开头,因为您的示例中有数字。 这里有一个解析器,它可以满足您的需要,尽管您需要调整它,将重复的元素组合成一个dict键:
|
|
|
2
4
使用一个XML解析器,使其生成一个DOM(文档对象模型),然后构建一个遍历所有节点的递归算法,在每个节点中调用“text()”(应该给您当前节点和所有子节点中的文本),并将其作为键放在字典中。 |
|
|
3
2
输出:
|
|
|
4
1
我认为语法是最好的选择。我找到了一个包含以下信息的链接: http://www.onlamp.com/pub/a/python/2006/01/26/pyparsing.html |
|
|
5
1
请注意,实际上不能通过正则表达式来解决这个问题,因为它们没有执行适当嵌套的表达能力。 使用以下迷你语言:
您可以非常容易地创建一个正则表达式来表示这种小型语言的一种超级语言(在这种语言中,您不强制要求开始括号和结束括号的数目相等)。您还可以使正则表达式非常容易地表示任何有限的子语言(在这里您将自己限制在某个最大嵌套深度)。但是你永远不能用正则表达式来表示这种精确的语言。 所以你必须使用语法,是的。 |
|
|
6
0
下面是一个不可靠、效率低下的递归regexp解决方案:
输出:
|