0
我有一個xml文件,包含一個有趣的評論,我想解析它。在Python3中解析特定的xml註釋
Here我發現我可以處理評論,但我不知道如何使用它們從我的主應用程序。
#!/usr/bin/python3
import xml.etree.ElementTree as ET
with open('xml_with_comments.xml', 'w') as f:
f.write('''<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<blah>node 1</blah>
<!-- secret_content: Hello! -->
<blah>node 2</blah>
<!-- A standard comment -->
<blah>node 3</blah>
</root>
''')
class TreeBuilderWithComments(ET.TreeBuilder):
def comment(self, data):
if data.startswith(' secret_content: '):
self.start(ET.Comment, {})
self.data(data)
self.end(ET.Comment)
print('Secret content from TreeBuilderWithComments: ' + data[17:-1])
root = ET.parse('xml_with_comments.xml', parser=ET.XMLParser(target=TreeBuilderWithComments())).getroot()
for blah in root.findall('blah'):
print(blah.text)
此輸出:
Secret content from TreeBuilderWithComments: Hello!
node 1
node 2
node 3
現在我想這樣做print(root.get_secret_content())
,應由打印文件begining的第一個註釋 'secret_content:'。
謝謝!我還修改了TreeBuilderWithComments.comment():'def comment(self,data):[\ n] SECRET_CONTENT_KEY ='secret_content:'[\ n] data = data.strip()[\ n]如果data.startswith(SECRET_CONTENT_KEY) :[\ n] self.secret_content = data [len(SECRET_CONTENT_KEY):]'。所以_get_secret_content()_是一個簡單的getter。 – roipoussiere