使用python从字符串中提取多个子字符串

时间:2016-01-19 07:04:42

标签: python regex string csv

我有一个xml字符串(我从CSV中获取),我需要从中识别它的值和名称。我想的逻辑是提取值在></之间的所有字符串,然后删除包含<>

的提取子字符串

我还没想到如何提取参数名称。我正在使用python。

下面是我从csv文件中读取的xml字符串。

<ServiceInstanceUpdateAck xmlns='http://www.loremipsum.com/'>
<Context>
    <Attribute name='Atri1'>A1</Attribute>
    <Attribute name='Atri2'>A2</Attribute>
    <Attribute name='Atri3'>A3</Attribute>
</Context>
<Operation>DEPROVISION</Operation>
<Status>SUCCESS</Status>
<Error message='No Error' majorErrorCode='E_NONE' minorErrorCode='E_NONE'/> 
<Service>
  <Id>11233334</Id>
</Service> 
</ServiceInstanceUpdateAck>

感谢任何帮助。

注意:这不是一个完整的xml。这是我从CSV文件中获取的帖子正文数据。基本上当我获取它时它是一个字符串。所以我不能在这里使用XML解析器。

2 个答案:

答案 0 :(得分:3)

由于您的数据只是XML,您可以使用XML解析器,可以找到文档here

答案 1 :(得分:0)

使用XML解析器; xml.dom.minidom应该足够了:

>>> import xml.dom.minidom
>>> doc = xml.dom.minidom.parseString(xmlString)
>>> for item in doc.getElementsByTagName("Attribute"):
...     print(item.getAttribute("name"))
...     print(item.childNodes[0].wholeText)
Atri1
A1
Atri2
A2
Atri3
A3