我需要解析包含xml註釋的文件。具體來說,它是一個使用MS ///
慣例的c#文件。pyparsing - 解析xml註釋
從這我需要拉出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測試上面的示例,它的工作原理,但(按我的問題)不打印任何值)
謝謝!
@ PaulMcGuire的解決方案也可以工作,但這正是我應該使用的(這是最簡單的......)Thansk! – mike