我需要解析一个包含 xml 注释的文件。具体来说,它是使用 MS///
约定的 ac# 文件。
从此我需要退出foobar
,或者/// foobar
也可以接受。(注意 - 如果您将 xml 全部放在一行上,这仍然不起作用......)
testStr = """
///<summary>
/// foobar
///</summary>
"""
这是我所拥有的:
import pyparsing as pp
_eol = pp.Literal("\n").suppress()
_cPoundOpenXmlComment = Suppress('///<summary>') + pp.SkipTo(_eol)
_cPoundCloseXmlComment = Suppress('///</summary>') + pp.SkipTo(_eol)
_xmlCommentTxt = ~_cPoundCloseXmlComment + pp.SkipTo(_eol)
xmlComment = _cPoundOpenXmlComment + pp.OneOrMore(_xmlCommentTxt) + _cPoundCloseXmlComment
match = xmlComment.scanString(testStr)
并输出:
for item,start,stop in match:
for entry in item:
print(entry)
但是我在跨多行工作的语法方面没有取得太大的成功。
(注意 - 我在 python 3.2 中测试了上述示例;它可以工作,但(根据我的问题)不打印任何值)
谢谢!