回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>假设我们有下面的字符串</p>
<pre><code>string = """
object obj1{
attr1 value1;
object obj2 {
attr2 value2;
}
}
object obj3{
attr3 value3;
attr4 value4;
}
"""
</code></pre>
<p>有一个嵌套的对象,我们使用Forward来解析它。在</p>
^{pr2}$
<p>这就是结果。这个对象.asXML()函数包含所有的信息,但是由于它已被展平,因此信息的顺序对于解析结果至关重要。这是最好的办法吗?我一定错过了什么。我想要一个既适用于嵌套对象又适用于非嵌套对象的解决方案,即obj1、obj2和obj3。在</p>
<p>另外,<code>setResultsName('object_type')</code>不返回父对象的<code>object_type</code>。上面程序的输出如下所示。有什么建议吗?在</p>
<pre><code>Enumerating over object 0
This is the object type obj2
<ITEM>
<object_type>obj1</object_type>
<name>attr1</name>
<value>value1</value>
<object_type>obj2</object_type>
<name>attr2</name>
<value>value2</value>
</ITEM>
{'object_type': 'obj2', 'name': 'attr2', 'value': 'value2'}
['obj1', 'attr1', 'value1', 'obj2', 'attr2', 'value2']
['obj1', 'attr1', 'value1', 'obj2', 'attr2', 'value2']
['obj1', 'attr1', 'value1', 'obj2', 'attr2', 'value2']
- name: attr2
- object_type: obj2
- value: value2
Enumerating over object 1
This is the object type obj3
<ITEM>
<object_type>obj3</object_type>
<name>attr3</name>
<value>value3</value>
<name>attr4</name>
<value>value4</value>
</ITEM>
{'object_type': 'obj3', 'name': 'attr4', 'value': 'value4'}
['obj3', 'attr3', 'value3', 'attr4', 'value4']
['obj3', 'attr3', 'value3', 'attr4', 'value4']
['obj3', 'attr3', 'value3', 'attr4', 'value4']
- name: attr4
- object_type: obj3
- value: value4
</code></pre>