【问题标题】:How to create Element with text and tags?如何使用文本和标签创建元素?
【发布时间】:2018-04-06 05:58:06
【问题描述】:

我已经创建了下一个 XML:

item = E('p') # <p/>

现在我需要将下一个内容放入其中:

text = "some <bold>text</bold>"

# item.append(text) 
# TypeError: Argument 'element' has incorrect type (expected lxml.etree._Element, got str)

# item.append(fromstring(text)) 
# lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1

我需要下一个 XML 节点:

<p>some <bold>text</bold></p>

如何正确做?

【问题讨论】:

    标签: python python-3.x lxml


    【解决方案1】:

    你需要创建子元素:

    from lxml import etree
    
    root = etree.Element("p")
    root.text = 'some'
    
    bold = etree.SubElement(root, 'bold')
    bold.text = 'text'
    
    print (etree.tostring(root))
    

    返回:

    <p>some<bold>text</bold></p>
    

    【讨论】:

    • 谢谢!并给出建议,如何获得下一个结果:&lt;p&gt;some &lt;bold&gt;text&lt;/bold&gt; more&lt;/p&gt;
    • 您应该使用templating engine 来生成 HTML 标记,而不是手动生成。
    • 但是我创建了一个解析器,我需要一些 XML 文档作为结果。视图的概念不适合我的项目...有什么想法吗?
    • 看看offical docs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多