I have an xml that contains an empty xmlns:tag0='' , is there a way I can ignore alltogether namespaces or add a default value to it? Because it stops my xml to open using xsl transforms. It says Reference to undeclared namespace prefix: 'tag0'.
Or is there a way to replace xmlns:tag0='' with xmlns:tag0='http://www.w3.org/TR/html4/ at the beginning?
Some part of xml that creates the problem (xml is about 2 MB)
<nodemetadata><imx:IMX versiondomainservice='2.4.1' versioncommon='2.2.0' serializationSpecVersion='4.0' xsi:schemaLocation='http://com.abc.imx IMX.xsd http://com.abc.aspd.metadata.domainservice/2 com.abc.aspd.metadata.domainservice.xsd http://com.abc.aspd.metadata.common/2 com.abc.aspd.metadata.common.xsd' crcEnabled='0' xmlns:imx='http://com.abc.imx' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><tag0:GatewayNodeConfig adminconsolePort='10073' nodeName='node01_rox.abc.com' imx:id='U:qywCXNr7EeG7SZfVCvSloA' domainName='Domain_rox.abc.com' dbConnectivity='ID_1' adminconsoleShutdownPort='10074' xmlns:tag0='http://com.abc.aspd.metadata.domainservice/2'><tag1:address port='10071' xsi:type='common:NodeAddress' host='rox.abc.com' httpPort='8080' imx:id='ID_2' xmlns:tag1=''></tag1:address><portals><tag1:NodeRef xsi:type='common:NodeRef' address='ID_2' nodeName='node01_rox.abc.com' imx:id='ID_3' xmlns:tag1=''></tag1:NodeRef></portals></tag0:GatewayNodeConfig><tag0:DBConnectivity imx:id='ID_1' dbConnectString='jdbc:abc:oracle:%2F%2FforKnight:1521%3BServiceName%3Dorcl%3BMaxPooledStatements%3D20%3BCatalogOptions%3D0%3BBatchPerformanceWorkaround%3Dtrue' dbType='ORACLE' dbEncryptedPassword='I7e20Erjax0wi7fY3qOaIxIBloTOBwLymgjvVVbkVcE%3D' dbUsername='lap1' xmlns:tag0='http://com.abc.aspd.metadata.domainservice/2'></tag0:DBConnectivity></imx:IMX></nodemetadata>
UPDATE My XSL Code
<?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:tag0="http://www.w3.org/TR/html4/" xmlns:tag1="http://www.w3.org/TR/html4/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:imx="http://com.abc.imx" xmlns:domainservice="http://com.abc.aspd.metadata.domainservice/2" exclude-result-prefixes="tag0 tag1"> <xsl:include href="system_win.xsl"/> <xsl:include href="system_nix.xsl"/> <xsl:template match="/"> <html> <head><link rel="stylesheet" type="text/css" href="http://www.abc.com/NR/inter2004/css/styles.css"/> <style type="text/css"> .horz{overflow-x: auto; overflow-y: hidden;width: 98%;} </style> </head> <body> <xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" /> <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" /> <xsl:for-each select="client/product"> <h3><span style="color:#328aa4"><a name="_nodemetadata" href="#_top">Node MetaData</a></span></h3> <h3>Gateway Node Configuration</h3> <br/> <dd> <div class="horz"> <table border="1"> <tbody> <tr> <th>Domain Name</th> <th>Node Name</th> <th>Adminconsole Port</th> <th>Adminconsole Shutdown Port</th> <th>DB Connectivity</th> </tr> <xsl:for-each select="nodemetadata/imx:IMX/tag0:GatewayNodeConfig"> <tr> <td valign="top" ><xsl:value-of select="@domainName"/></td> <td valign="top" ><xsl:value-of select="@nodeName"/></td> <td valign="top" ><xsl:value-of select="@adminconsolePort"/></td> <td valign="top" ><xsl:value-of select="@adminconsoleShutdownPort"/></td> <td valign="top" ><xsl:value-of select="@dbConnectivity"/></td> </tr> </xsl:for-each> </tbody> </table> </div> </dd> <br/> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
This gives me XML parsing error: no need to decompress the prefix on tag0
source share