擅长:python、mysql、java
<p>假设有多个<code>databases</code>标记嵌套在<code>root</code>父节点中。将内容读入字符串(我使用的是多行Python字符串)</p>
<pre><code>my_string = '''
<root>
<databases>
<source>
<host>prod</host>
<port>1522</port>
<user>P11</user>
<password>lXXXXX</password>
<tns>GP1</tns>
</source>
<target>
<host>bcp</host>
<port>1522</port>
<user>pg</user>
<password>yyyyy</password>
</target>
</databases>
</root>
'''
</code></pre>
<p>然后,您可以通过以下操作获得所需的结果:</p>
<pre><code>from lxml import html
tree = html.fromstring(my_string)
databases = tree.xpath('.//databases')
for database in databases:
print('User: ' + database.xpath('.//user/text()')[0])
try:
print('TNS: ' + database.xpath('.//tns/text()')[0])
except:
print('TNS: null')
</code></pre>