首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java删除xml中除replaceall之外的所有名称空间

使用java删除xml中除replaceall之外的所有名称空间
EN

Stack Overflow用户
提问于 2014-06-30 14:17:20
回答 1查看 552关注 0票数 0

我想用java移除xml文档中的所有命名空间,有没有比全部替换方法更有效的方法呢?

提前谢谢。寿司马。

EN

回答 1

Stack Overflow用户

发布于 2014-06-30 14:40:10

使用正则表达式处理删除名称空间声明可能是可行的,只要您不关心匹配实际上不是名称空间声明的内容(例如,在注释或CDATA部分中)的可能性很小。从元素和属性名称中删除前缀更为棘手。为什么不使用XSLT这个简单的方法呢?它只需要一个简单的2规则样式表:

代码语言:javascript
复制
<xsl:template match="*">
  <xsl:element name="{local-name()}">
    <xsl:apply-templates select="*|@*"/>
  </xsl:element>
</xsl:template>

<xsl:template match="@*">
  <xsl:attribute name="{local-name()}">
    <xsl:value-of select=."/>
  </xsl:attribute>
</xsl:template>

如果发现需要执行更多操作,可以添加更多规则,例如,将名称空间保留在xml:base或xsi:schemaLocation属性上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24483936

复制
相关文章

相似问题

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