pyparsing OneOrMore()。asxml()标签不正确

时间:2014-03-23 15:03:34

标签: python pyparsing

当我使用asXML()将ParsedResults输出为xml时,标签有时与我在setResultsName()中指定的不匹配。

例如:

#!/usr/bin/python
import sys
import os
from pyparsing import *

mystring="""
a b c
x y z
"""
ParserElement.setDefaultWhitespaceChars(" \t\r")
SOL = LineStart().leaveWhitespace().suppress()
EOL = LineEnd().suppress()

first = SOL + Word(alphas)('first')
second = Word(alphas)('second')
third = Word(alphas)('third') + EOL
line = Group(first + second + third).setResultsName('line')

print OneOrMore(line).setResultsName('mylines').searchString(mystring).asXML()

这是我的输出

<ITEM>
  <mylines>
    <mylines>
      <first>a</first>
      <second>b</second>
      <third>c</third>
    </mylines>
    <line>
      <first>x</first>
      <second>y</second>
      <third>z</third>
    </line>
  </mylines>
</ITEM>

为什么有一个mylines标签嵌套在另一个顶部,但是下一个块是一个像我期待的行标签?

0 个答案:

没有答案