当我使用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标签嵌套在另一个顶部,但是下一个块是一个像我期待的行标签?