在djang中解析xml文件

2024-10-01 17:36:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我的项目文件夹中有一个xml文档,我在提取元素属性值时遇到了问题。在

我的xml文件如下所示:

<?xml version="1.0" ?>

<results filename="/home/maker/media/image" syncfile="/home/maker/media/synchro.xml">
    <readbit number="1" frame="10" bit="0" score="-0.483138" status="n" />
    <readbit number="2" frame="20" bit="1" score="0.416175" status="n" />
    <readbit number="3" frame="30" bit="0" score="-0.457450" status="n" />
    <readbit number="4" frame="40" bit="1" score="0.597008" status="y" />
    ....
</results>

在我看来,我试图获得属性位的所有值:

^{pr2}$

在我的模板中:

<html>
<head>
  <title> Mark </title>
</head>
<body>
 {% for element in elements %}
 <p> {{ element }} </p>
 {% endfor %}
</body>

Tags: numberhome属性titlestatusbitbodyxml
2条回答

列表值为空,因为填充的列表是元素,请尝试以下操作:

def parse(request):
    xmldoc = minidom.parse('synchro.xml')
    readbitlist = xmldoc.getElementsByTagName('readbit')
    values = []
    for s in readbitlist :
        x = s.attributes['bit'].value
        values.append(x)
    return render(request, 'parse.html', {'values': values})

我正在使用ElementTree XML API解析XML文件: https://docs.python.org/2/library/xml.etree.elementtree.html

它使它变得非常简单。在

要分析案例中的XML:

import xml.etree.ElementTree as ET


def parse(request):
    xmldoc = minidom.parse('synchro.xml')
    root = xmldoc.getroot()
    elements = []
    for readbit in root.findall('readbit'):
        # get the attribute with value equal 'bit'
        bit = country.get('bit')
        elements.append(bit)
    return render(request, 'parse.html', {'elements': elements})

相关问题 更多 >

    热门问题