Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java删除xml中除replaceall以外的所有名称空间_Java_Xml_Xslt_Xml Parsing_Xml Namespaces - Fatal编程技术网

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

使用java删除xml中除replaceall以外的所有名称空间,java,xml,xslt,xml-parsing,xml-namespaces,Java,Xml,Xslt,Xml Parsing,Xml Namespaces,我想使用java删除xml文档中的所有名称空间,除了替换所有方法之外,还有其他有效的方法吗 提前谢谢。 Sushma.如果您不关心匹配实际不是名称空间声明的内容(例如,在注释或CDATA节中)的可能性很小,那么使用正则表达式处理删除名称空间声明可能是可行的。从元素和属性名称中移除前缀更为棘手。为什么不使用XSLT以简单的方式完成呢?它只需要一个简单的2规则样式表: <xsl:template match="*"> <xsl:element name="{local-name

我想使用java删除xml文档中的所有名称空间,除了替换所有方法之外,还有其他有效的方法吗

提前谢谢。
Sushma.

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

<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解析为对象树,删除名称空间并再次序列化XML。说真的,全部替换怎么样?结果如何?嗨,我是java新手,你能简单解释一下吗。。