我有一个xml文件,我必须用xslt解析,但问题是在根节点我有一个链接,它不允许我解析xml文件。如果我从xml文件中删除该链接,我可以解析该文件。 xml文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ROOT xmlns="http://link.org/3.2.1">
<TOP-LEVEL-PACKAGES>
<AR-PACKAGE>
<SHORT-NAME>ActiveEcu</SHORT-NAME>
</AR-PACKAGE>
</TOP-LEVEL-PACKAGES>
</ROOT>
但是我不应该修改xml文件,因此我需要一个解析它来解析它而不删除该链接。 任何解决方案?
答案 0 :(得分:0)
添加类似xmlns的内容:ns1 =&#34; link.org/3.2.1" ;;然后在引用根节点时使用以下语法:ns1:ROOT
基本上,您的ROOT节点与表示URL的默认命名空间相关联。 在xslt模板中,你必须提到URL的namspace来告诉XSLT解析器ROOT节点属于那个特定的命名空间
实际上,给定xml的所有子节点都属于URL
所代表的默认命名空间例如
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="xsl"
xmlns:ns1="http://link.org/3.2.1">
<xsl:template match="/">
<xsl:value-of select="ns1:ROOT"/>
</xsl:template>
</xsl:stylesheet>