Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当没有可用的doctype时,lxml不工作?_Python_Xml_Lxml - Fatal编程技术网

Python 当没有可用的doctype时,lxml不工作?

Python 当没有可用的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

我正在尝试用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-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'])
可能会有所帮助