如何以字符串形式获取 XML 元素的内容?

古根先生

考虑这个 XML 示例:

<data>
    <items>
        <item name="item1">item1pre <bold>ok!</bold> item1post</item>
        <item name="item2">item2</item>
    </items>
</data>

我正在寻找一种方法来获得以下结果:

“item1pre **ok!** item1post”

我想把 item1 的所有内容作为一个字符串 "item1pre <'bold> ok!<'/bold> item1post" 然后用 "**" 替换 "<'bold>" 和 "<'/bold>",但我不知道如何得到它。

坦率
xml="""
<data>
    <items>
        <item name="item1">item1pre<bold>ok!</bold>item1post</item>
        <item name="item2">item2</item>
    </items>
</data> 
"""

import xml.etree.ElementTree as ET
# python included module

def cleaned_strings_from_xml(xml_str, tag='item'):
    """
    finds all items of type tag from xml-string

    :param xml_str: valid xml structure as string
    :param tag: tag to search inside the xml
    :returns: list of all texts of 'tag'-items
    """
    strings = []
    root = ET.fromstring(xml)
    for item in root.iter(tag):
        item_str = ET.tostring(item).decode('utf-8')
        item_str = item_str.replace('<bold>', ' **').replace('</bold>', ' **')
        strings.append(ET.fromstring(item_str).text)
    return strings

print(cleaned_strings_from_xml(xml))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何以字符串形式获取XML内容

如何使用xmlStreamReader以字符串形式获取XML文件的全部内容?

具有属性和字符串内容的XML元素

如何以字符串形式获取UNO共享项目的文件内容

如何获取由PHP simplexml_load_string解析的XML元素(SimpleXMLElement)的字符串类型的内容?

如何以纯字符串形式查看文件内容

java-以字符串形式获取xml节点的所有内容

如何从 DevOps 更改多个 XML 元素内容

如何从Java文件中以字符串形式读取XML内容

使用子进程的PIPE时,如何以字符串形式获取python对象<class'_io.TextIOWrapper'>的内容?

如何从xml文件中以字符串形式获取URL?

PHP 获取 XML rootNode 内容作为字符串

如何从 XML 内容中拆分字符串并获取所需的值

获取元素节点等于字符串的xml结果

如何从Java中的XML字符串获取所有元素的值?

如何从Android中XML中定义的字符串数组中获取对单个元素的引用

以字符串形式获取iframe内容

以字符串形式获取MimeMessage内容

正则表达式从xml元素获取内部内容

如何从xml字符串内容构建HierarchicalConfiguration对象?

如何打印android字符串XML文件中的内容

如何在Powershell中打印xml元素的实际内容?

如何通过元素内容过滤解析的XML数据[jQuery]

如何解释零长度XML元素内容?

如何从 XML 文件中删除元素及其内容

如何解析xml字符串元素?

从xml内容替换字符串

如何使用 XML::Simple 基于 Perl 中的 XML 属性内容修改 XML 元素?

将字符串形式的XML内容添加到XDocument