Mat*_*teo 13 python xml lxml scorm
我正在尝试使用python和lxml创建一个看起来像这样的xml条目:
<resource href="Unit 4.html" adlcp:scormtype="sco">
Run Code Online (Sandbox Code Playgroud)
我正在使用python和lxml.我遇到了adlcp:scormtype属性问题.我是xml的新手,所以如果我错了请纠正我. adlcp是一个名称空间,scormtype是一个在adlcp名称空间中定义的属性,对吧?
我甚至不确定这是否是正确的问题但是...我的问题是,如何使用lxml从非默认命名空间向元素添加属性?如果这是一个微不足道的问题,我会提前道歉.
use*_*019 16
这不是一个完整的回复,只是几个指针.
adlcp不是名称空间,它是名称空间前缀.命名空间在文档中通过类似属性定义xmlns:adlcp="http://xxx/yy/zzz"
在lxml中,您始终设置包含命名空间的元素/属性名称,例如,
{http://xxx/yy/zzz}scormtype 而不仅仅是scormtype.然后,lxml将自动放入名称空间前缀.但是lxml会将前缀设置为ns0或类似,除非你做更多的小提琴,但这应该足够,因为前缀并不意味着什么.(但有些人更喜欢控制前缀名称;请参阅Element和SubElement函数的nsmap参数以及register_namespace函数).
我想看看在命名空间LXML教程,并深入Python - XML章节
小智 7
试试这个:
builder = ElementMaker(namespace="http://a.different.url/blah/v.10",
nsmap={
'adlcp': "http://a.namespace.url/blah/v.10",
'anotherns': "http://a.different.url/blah/v.10"
})
builder.resource()
builder.attrib['href'] = "Unit 4.html"
builder.attrib['{http://a.namespace.url/blah/v.10}scormtype'] = 'sco'
print(etree.tostring(builder, pretty_print=True))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10957 次 |
| 最近记录: |