首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElementTree命名空间不方便

ElementTree命名空间不方便
EN

Stack Overflow用户
提问于 2011-02-24 00:18:33
回答 1查看 753关注 0票数 1

我不能控制我得到的XML的质量。在某些情况下,它是:

代码语言:javascript
复制
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
...
</COLLADA>

在其他情况下,我得到了:

代码语言:javascript
复制
 <COLLADA>...</COLLADA>

我想我也应该处理

代码语言:javascript
复制
 <collada:COLLADA xmlns:collada="http://www.collada.org/2005/11/COLLADASchema">
 ...
 </collada:COLLADA>

所有的模式都是一样的,我只需要一个解析器来处理它。我该如何处理所有这些情况呢?我需要XPath和其他lxml好东西来解决这个问题。如何在etree.parse时间内保持一致?我不想在每次需要使用XPath时都检查名称空间。

EN

回答 1

Stack Overflow用户

发布于 2011-02-24 02:16:56

我通常的建议是首先对其进行预处理,以规范化名称空间。这有两个好处:规范化代码高度可重用,因为它不依赖于随后如何处理数据;处理数据的逻辑大大简化。

如果文档只使用这一个名称空间,或者不使用任何名称空间,并且在文本或属性节点的内容中不使用限定名,则实现此规范化的转换非常简单:

代码语言:javascript
复制
<xsl:template match="*">
  <xsl:element name="local-name()" namespace="http://www.collada.org/2005/11/COLLADASchema">
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5093613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档