当前位置: 首页 > 知识库问答 >
问题:

从xml中提取值

余靖
2023-03-14

Q非常业余的程序员在这里,寻求你的帮助。

我必须经常编辑这样的xml文件

    --- blah blah blah plenty xml stuff above ---
    <lex marker="mala" sentiment="negative"/>
    <lex marker="malas" sentiment="negative"/>
    <lex marker="maleducad\p{Ll}*" sentiment="negative" regex="true"/>
    <lex marker="mali\p{Ll}+sima\p{Ll}*" sentiment="negative" regex="true"/>
    <lex marker="mali\p{Ll}+simo\p{Ll}*" sentiment="negative" regex="true"/>
    --- blah blah blah plenty xml stuff below ---

使用一个相当复杂的正则表达式搜索和替换过程,我只能提取标记属性的值。(这就是我所关心的)。

但是这很耗时,而且在Python中必须有非常简单的方法来查找属性标记="SOME_TEXT"部分并将所有值放入一个数组中,然后打印出该数组(到文件中)。但是我无法弄清楚:(

我正在寻找一种不包括导入任何类型的XML库的方法,因为我想让它尽可能简单(和逻辑性),让我的业余编程头脑可以从中学习),而且我只对来自该特定属性的数据感兴趣,我不关心文件的任何其他部分(或它的XML特性)。

我只问python,因为我认为这是一种我很想学习的语言。但是如果你能想出一种Linux终端的方法(sed,awk e.t.c.),我也很乐意走这条路。

共有1个答案

翟嘉志
2023-03-14

将XML与正则表达式匹配变得太复杂、太快了。您真的不应该这样做。

相反,使用XML解析器,Python有几种选择:

  • ElementTree是标准库的一部分

元素树示例:

from xml.etree import ElementTree

tree = ElementTree.parse('filename.xml')
for elem in tree.findall('lex'):
    print elem.attrib['marker']
 类似资料:
  • 我从http请求中得到了这个QString,我需要做的是只提取字符串“一致“在标签内 怎么做?

  • 我试图提取搜索关键字从SOAP xml模式与美丽的汤,不知道如何提取值属性。 我已经尝试使用但它不会让我提取value属性。 这是我到目前为止所拥有的: 这就是我有问题的地方。根据美丽的汤留档,这应该输出所有的“值”属性。 如您所见,我试图从所有xs:enumeration标记中的value属性中获取文本。最终结果将是level1的搜索词列表。即。: (蚀变、火成、变质、未发现、矿石、沉积岩、矿脉

  • 问题内容: 这是示例xml文档: 我想提取文本而不指定元素,我该怎么做,因为我有10个这样的文档。我想要这样做是因为我的问题是用户正在输入一个我不知道的单词,必须在其各自文本部分的所有10个xml文档中进行搜索。为此,我应该在不知道元素的情况下知道文本的位置。所有这些文档都不同的另一件事。 请帮忙!! 问题答案: 您可以简单地去除所有标签: 但是,如果您只想在Linux中搜索文件中的某些文本,则可

  • 问题内容: 我有这个示例xml文件 我喜欢提取标题标签和内容标签的内容。 使用模式匹配或使用xml模块,哪种方法最适合提取数据。还是有更好的方法来提取数据。 问题答案: 特别是已经有一个内置的XML库。例如:

  • 我是新来的Spring。我创建了,其中创建了bean。当我试图使用时,我得到了以下错误: IOException从类路径资源[config.XML]解析XML文档;嵌套异常是java.io.FileNotFoundException:无法打开类路径资源[config.xml],因为它不存在。 我之前用过这句话。 我的config.xml位于中 的内容:

  • 我试图从ECB货币XML对象中提取交换值。这里有http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml 我可以毫无问题地加载对象,然后打印出所有数据。然而,我无法从该对象获取特定数据。 这是print_r的输出 SimpleXMLElement对象([Cube]= 例如,我如何从美元中获得汇率的值?阅读此线程后,我如何访问数组/对象