在python中解析嵌套的xml

埃拉贝尔斯

我有这个XML文件:

<?xml version="1.0" ?><XMLSchemaPalletLoadTechData xmlns="http://tempuri.org/XMLSchemaPalletLoadTechData.xsd">
  <TechDataParams>
    <RunNumber>sample</RunNumber>
    <Holder>sample</Holder>
    <ProcessToolName>sample</ProcessToolName>
    <RecipeName>sample</RecipeName>
    <PalletName>sample</PalletName>
    <PalletPosition>sample</PalletPosition>
    <IsControl>sample</IsControl>
    <LoadPosition>sample</LoadPosition>
    <HolderJob>sample</HolderJob>
    <IsSPC>sample</IsSPC>
    <MeasurementType>sample</MeasurementType>
  </TechDataParams>
  <TechDataParams>
    <RunNumber>sample</RunNumber>
    <Holder>sample</Holder>
    <ProcessToolName>sample</ProcessToolName>
    <RecipeName>sample</RecipeName>
    <PalletName>sample</PalletName>
    <PalletPosition>sample</PalletPosition>
    <IsControl>sample</IsControl>
    <LoadPosition>sample</LoadPosition>
    <HolderJob>sample</HolderJob>
    <IsSPC>sample</IsSPC>
    <MeasurementType>XRF</MeasurementType>
  </TechDataParams>
</XMLSchemaPalletLoadTechData>

这是我解析xml的代码:

for data in xml.getElementsByTagName('TechDataParams'):
    #parse xml
    runnum=data.getElementsByTagName('RunNumber')[0].firstChild.nodeValue
    hold=data.getElementsByTagName('Holder')[0].firstChild.nodeValue
    processtn=data.getElementsByTagName('ProcessToolName'[0].firstChild.nodeValue)
    recipedata=data.getElementsByTagName('RecipeName'[0].firstChild.nodeValue)
    palletna=data.getElementsByTagName('PalletName')[0].firstChild.nodeValue
    palletposi=data.getElementsByTagName('PalletPosition')[0].firstChild.nodeValue
    control = data.getElementsByTagName('IsControl')[0].firstChild.nodeValue
    loadpos=data.getElementsByTagName('LoadPosition')[0].firstChild.nodeValue
    holderjob=data.getElementsByTagName('HolderJob')[0].firstChild.nodeValue
    spc = data.getElementsByTagName('IsSPC')[0].firstChild.nodeValue
    mestype = data.getElementsByTagName('MeasurementType')[0].firstChild.nodeValue

但是当我打印每个节点时,我只能得到一组“ TechDataParams”,但是我希望能够从XML中获得所有的“ TechDataParams”。

让我知道我的问题是否还不清楚。

ec

请勿使用解析XML minidom,除非您希望自己拔掉头发。

我会在这里使用xmltodict模块一行,就可以找到一列包含所有所需数据的字典:

import xmltodict

data = """your xml here"""

data = xmltodict.parse(data)['XMLSchemaPalletLoadTechData']['TechDataParams']
for params in data:
    print dict(params)

印刷:

{u'PalletPosition': u'sample', u'HolderJob': u'sample', u'RunNumber': u'sample', u'ProcessToolName': u'sample', u'RecipeName': u'sample', u'IsControl': u'sample', u'PalletName': u'sample', u'LoadPosition': u'sample', u'MeasurementType': u'sample', u'Holder': u'sample', u'IsSPC': u'sample'}
{u'PalletPosition': u'sample', u'HolderJob': u'sample', u'RunNumber': u'sample', u'ProcessToolName': u'sample', u'RecipeName': u'sample', u'IsControl': u'sample', u'PalletName': u'sample', u'LoadPosition': u'sample', u'MeasurementType': u'XRF', u'Holder': u'sample', u'IsSPC': u'sample'}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Python 中解析嵌套的 XML?

来自分类Dev

在Python中解析嵌套和复杂的XML

来自分类Dev

通过Python中的深层嵌套XML文件进行解析

来自分类Dev

解析嵌套的XML文件并获取python中先前标记的值

来自分类Dev

在python中解析嵌套函数

来自分类Dev

在python中解析XML

来自分类Dev

在Python中解析XML

来自分类Dev

XML解析Python ElementTree-嵌套循环

来自分类Dev

使用jaxb解析xml中的嵌套元素

来自分类Dev

在Dart / Flutter中解析嵌套的XML

来自分类Dev

在sencha touch 2中解析嵌套的XML

来自分类Dev

解析R中的非嵌套XML标签

来自分类Dev

Python中的嵌套XML标签

来自分类Dev

Oracle嵌套xml解析

来自分类Dev

解析复杂嵌套的 XML

来自分类Dev

从python中的嵌套URL抓取并解析表

来自分类Dev

通过python中的xml解析

来自分类Dev

通过python中的xml解析

来自分类Dev

在python中解析xml文件

来自分类Dev

Python - XML 解析不适用于嵌套的 for 循环

来自分类Dev

如何在C#中解析嵌套的XML节点

来自分类Dev

使用Java解析XML文件中的嵌套元素

来自分类Dev

使用documentBuilderFactory解析时如何管理xml中的嵌套循环

来自分类Dev

如何使用 JAXB 解析 Java 中嵌套的 XML 对象列表?

来自分类Dev

在 R 中解析嵌套的 XML(带有命名空间)

来自分类Dev

在Python中检测XML标签的错误嵌套

来自分类Dev

使用XMLin解析嵌套的XML

来自分类Dev

使用php解析嵌套的xml

来自分类Dev

在python中解析XML以获取数字