空を含むxmlがありますxmlns:tag0=''
が、名前空間をすべて無視したり、デフォルト値を追加したりする方法はありますか?xsl変換で開くためにxmlを停止しているためです。それは言うReference to undeclared namespace prefix: 'tag0'.
xmlns:tag0=''
または、xmlns:tag0='http://www.w3.org/TR/html4/
最初に置き換える方法はありますか?
問題を引き起こすxmlの一部(xmlは約2MBです)
<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>
XSLコードを更新する
<?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>
XML解析エラーが発生します:tag0のプレフィックスを宣言解除してはなりません