繁体   English   中英

python 2.7 XML lxml名称空间前缀属性问题

[英]python 2.7 XML lxml namespace prefix attribute issues

所以,我已经看到很多针对这个问题的答案,但是当它在XML文档的整个范围内发生变化时,它们没有明确说明如何调整名称空间前缀。

我有的:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <ns0:Description xmlns:ns0="http://purl.org/NET/FOO">
    </ns0:Description>
</rdf:RDF>

我想要的是:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about="http://purl.org/NET/FOO">
    </rdf:Description>
</rdf:RDF>

为了澄清 ,我希望子SubElement的xmlns:rdfsrdf:about

曾经在Python2.5中工作的东西:

rdf_description = SubElement(
    root,
    '{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description',
    {'rdf:about':vocab_namespace}
)

我在Python2.7中尝试过的:

register_namespace('rdf', 'rdf:about')
rdf_description = SubElement(
    root,
    '{http://www.w3.org/1999/02/22-rdf-syntax-ns#}Description',
    nsmap={'rdf': rdf_url}
)

...... 好吧,我已经尝试过这么长时间排列的排列(这就是我现在拥有它的方式),但我似乎无法改变我需要它们的位数。

如果一个真正的lxml忍者可以从他们的快乐宫中走下来并指导这个新手,我会永远感激。

这对你有用吗?

RDFNS = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
root = lxml.etree.Element('{%s}RDF' % RDFNS, nsmap={'rdf': RDFNS})
rdf_description = lxml.etree.SubElement(
    root,
    '{%s}Description' % RDFNS,
    {"{%s}about" % RDFNS: "http://purl.org/NET/FOO"})

检查输出:

>>> print lxml.etree.tostring(root, pretty_print=True)
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about="http://purl.org/NET/FOO"/>
</rdf:RDF>

>>> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM