Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
simplexml_load_字符串等效Python/Django_Python_Xml_Django_Simplexml - Fatal编程技术网

simplexml_load_字符串等效Python/Django

simplexml_load_字符串等效Python/Django,python,xml,django,simplexml,Python,Xml,Django,Simplexml,我试图在Python中找到xml解释函数(如simplexml_load_字符串),但没有成功:/ 假设我有一个字符串中的xml my_xml_string = """ <root> <content> <one>A value</one> <two>Here goes for ...</two> </content> </root>""" p

我试图在Python中找到xml解释函数(如simplexml_load_字符串),但没有成功:/

假设我有一个字符串中的xml

my_xml_string = """
<root>
      <content>
        <one>A value</one>
        <two>Here goes for ...</two>
      </content>
</root>"""
python/django中是否有任何等效对象

谢谢

最近的可能是python标准库(或扩展版本)的一部分

设置属于类元素的元素,可以将其视为XML元素列表

e、 g

如果要使用名称,还可以通过XPath进行搜索

lxml还有一个模型,允许像“处理普通Python对象层次结构”一样访问元素。该模型更准确地匹配php用法,包括几个xml解析模块。最简单的可能是ElementTree

from xml.etree import cElementTree as ET
xml = ET.fromstring(my_xml_string)

print xml.find('.//content/one').text
print xml.find('.//content/two').text
非常常见,可能是Python中包含的最好的库(自版本2.5以来)


然而,就个人而言,我更喜欢权力和灵活性。“lxml.objectify”方法对于将大型XML dom解析为Python对象特别有用。

来自XML.dom.minidom导入*

my_xml_string = """
<root>
      <content>
        <one>A value</one>
        <two>Here goes for ...</two>
      </content>
</root>"""

xml = parseString(xml_string)
result = xml.getElementsByTagName('one')[0].firstChild.data
my_xml_string=”“”
价值
这是。。。
"""
xml=parseString(xml\u字符串)
结果=xml.getElementsByTagName('one')[0].firstChild.data
这就成功了,现在

正是你想要的

In [1]: from lxml import objectify

In [2]: x = objectify.fromstring("""<response><version>1.2</version><amount>1.01</amount><currency>USD</currency></response>""")

In [3]: x.version
Out[3]: 1.2

In [4]: x.amount
Out[4]: 1.01

In [5]: x.currency
Out[5]: 'USD'
[1]中的
:从lxml导入objectify
在[2]中:x=objectify.fromstring(“'1.21.01USD”“”)
在[3]:x.version中
Out[3]:1.2
在[4]中:x.金额
Out[4]:1.01
在[5]中:x.货币
Out[5]:“美元”

我不太喜欢ElementTree,也许我对语法有点不习惯。对我来说,xml.dom.minidom似乎更完整。我一定会调查lxml!谢谢minidom是最简单的,但也是最不通俗、功能最不完整的。我以前用过它来完成这项工作,但是如果你花很多时间使用XML,你很快就会放弃它。那么XML.dom.minidom呢?你可以使用它,但是你现在正在操作一个dom-lxml和元素树,试图使导航更“pythonic”,而不是特定于dom
from xml.etree import cElementTree as ET
xml = ET.fromstring(my_xml_string)

print xml.find('.//content/one').text
print xml.find('.//content/two').text
my_xml_string = """
<root>
      <content>
        <one>A value</one>
        <two>Here goes for ...</two>
      </content>
</root>"""

xml = parseString(xml_string)
result = xml.getElementsByTagName('one')[0].firstChild.data
In [1]: from lxml import objectify

In [2]: x = objectify.fromstring("""<response><version>1.2</version><amount>1.01</amount><currency>USD</currency></response>""")

In [3]: x.version
Out[3]: 1.2

In [4]: x.amount
Out[4]: 1.01

In [5]: x.currency
Out[5]: 'USD'