我需要为消息格式构建一个与常规XML稍有不同的解析器。 可以给已经经历过这件事的人提供一些指导吗?我没有在stackoverflow上找到任何类似的问题。如果有的话,我将不胜感激。
要解析的消息如下:
我阅读了lxml文档(https://lxml.de/element_classes.html),但我不理解“鸣笛”示例。
[MSG]
NODE1=Node1content
[CHILD1]
CHILDNODE1=ChildNode1Content
[/CHILD1]
[CHILD2]
CHILDNODE2=ChildNode2Content
[CHILD3]
CHILDNODE3=ChildNode3Content
[/CHILD3]
[/CHILD2]
[/MSG]
我希望XML树作为输出,可以在其上获得root并遍历子级。
答案 0 :(得分:0)
样本很小,不知道这是否是一种过度乐观的方法,但是可能您不需要自定义解析器来获取有效的xml。 CHILDNODE2=
也可以轻松删除。使用python代替bash也不难。
cat test.txt | tr '[' '<' | tr ']' '>' | xmllint --xpath '//CHILD2' -
<CHILD2>
CHILDNODE2=ChildNode2Content
<CHILD3>
CHILDNODE3=ChildNode3Content
</CHILD3>
</CHILD2>