Python 当没有可用的doctype时,lxml不工作?
我正在尝试用etree解析XMLPython 当没有可用的doctype时,lxml不工作?,python,xml,lxml,Python,Xml,Lxml,我正在尝试用etree解析XML import re from lxml import etree from pprint import pprint doc = etree.parse('123.xml') print doc.xpath('//jdbc-driver-params/url') 但无论我使用什么xpath查询,它都会返回一个空列表 有什么想法吗?附加xml <?xml version="1.0" encoding="UTF-8"?> <jdbc-dat
import re
from lxml import etree
from pprint import pprint
doc = etree.parse('123.xml')
print doc.xpath('//jdbc-driver-params/url')
但无论我使用什么xpath查询,它都会返回一个空列表
有什么想法吗?附加xml
<?xml version="1.0" encoding="UTF-8"?>
<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source">
<name>jdbc/db_ejemplo</name>
<jdbc-driver-params>
<url>jdbc:mysql://localhost:3306/db_ejemplo</url>
<driver-name>com.mysql.jdbc.Driver</driver-name>
<properties>
<property>
<name>user</name>
<value>root</value>
</property>
<property>
<name>password</name>
<value>Qwer1234</value>
</property>
</properties>
</jdbc-driver-params>
<jdbc-data-source-params>
<jndi-name>jdbc/db_ejemplo</jndi-name>
</jdbc-data-source-params>
</jdbc-data-source>
jdbc/db_ejempo
jdbc:mysql://localhost:3306/db_ejemplo
com.mysql.jdbc.Driver
用户
根
密码
Qwer1234
jdbc/db_ejempo
似乎是命名空间导致了问题:
doc.xpath(
'//ns:jdbc-data-source/ns:jdbc-driver-params/ns:url',
namespaces={
'ns':'http://xmlns.oracle.com/weblogic/jdbc-data-source'
}
)
收益率:
[<Element {http://xmlns.oracle.com/weblogic/jdbc-data-source}url at 0x1049877a0>]
[]
如何解析任意名称空间?这取决于您希望从XML文件中提取什么内容,但是doc.xpath(“/*[local-name()='url'])
可能会有所帮助