Xml maximo响应没有XSL转换
这是我的回应:Xml maximo响应没有XSL转换,xml,xslt,maximo,Xml,Xslt,Maximo,这是我的回应: <?xml version="1.0" encoding="UTF-16"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <QueryMXCPISResponse baseLanguage="EN" creationDateTime="2014-11-25T11:56:09+
<?xml version="1.0" encoding="UTF-16"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<QueryMXCPISResponse baseLanguage="EN"
creationDateTime="2014-11-25T11:56:09+01:00"
maximoVersion="7 5 20130829-1209 V7510--1"
messageID="1416912970550686680" rsCount="3" rsStart="0"
rsTotal="3" transLanguage="EN"
xmlns="http://www.ibm.com/maximo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MXCPISSet>
<CPIS>
<AK>D</AK>
<CPISID>630124</CPISID>
<ORGID>01</ORGID>
<S1>0</S1>
<S2>0</S2>
<S3>0</S3>
<S4>0</S4>
<S5>0</S5>
<S6>1</S6>
<SHIFT>3</SHIFT>
<SHIFTDATE>2014-09-30T00:00:00+02:00</SHIFTDATE>
<SITEID>0030</SITEID>
<STATUS>NEW</STATUS>
<TEAM>C</TEAM>
<WP>LC11</WP>
<ASSET>
<ASSETNUM>LC11</ASSETNUM>
<LOCATION>FACILITY-1</LOCATION>
<SITEID>0030</SITEID>
</ASSET>
</CPIS>
<CPIS>
<AK>D</AK>
<CPISID>630121</CPISID>
<ORGID>01</ORGID>
<S1>0</S1>
<S2>0</S2>
<S3>1</S3>
<S4>0</S4>
<S5>0</S5>
<S6>1</S6>
<SHIFT>1</SHIFT>
<SHIFTDATE>2014-09-30T00:00:00+02:00</SHIFTDATE>
<SITEID>0030</SITEID>
<STATUS>CHECKED</STATUS>
<TEAM>B</TEAM>
<WP>LC11</WP>
<ASSET>
<ASSETNUM>LC11</ASSETNUM>
<LOCATION>FACILITY-1</LOCATION>
<SITEID>0030</SITEID>
</ASSET>
</CPIS>
<CPIS>
<AK>D</AK>
<CPISID>630122</CPISID>
<ORGID>01</ORGID>
<S1>1</S1>
<S2>1</S2>
<S3>0</S3>
<S4>0</S4>
<S5>0</S5>
<S6>1</S6>
<SHIFT>2</SHIFT>
<SHIFTDATE>2014-09-30T00:00:00+02:00</SHIFTDATE>
<SITEID>0030</SITEID>
<STATUS>APPLIED</STATUS>
<TEAM>B</TEAM>
<WP>LC11</WP>
<ASSET>
<ASSETNUM>LC11</ASSETNUM>
<LOCATION>FACILITY-1</LOCATION>
<SITEID>0030</SITEID>
</ASSET>
</CPIS>
</MXCPISSet>
</QueryMXCPISResponse>
</soapenv:Body>
如果我删除xmlns=”http://www.ibm.com/maximo“从响应消息中,我得到了正确的输出
WP Site Shift
LC11 0030 3
LC11 0030 1
LC11 0030 2
XSL文件中有什么错误导致我没有得到HTML输出?元素
querymxpisresponse
、MXCPISSet
等位于命名空间xmlns=”http://www.ibm.com/maximo“
。如果没有名称空间,处理器将不匹配任何元素,而不是应用样式表,而是应用。您需要在模板中容纳此名称空间,如下所示(注意maximo的xmlns
和别名m
):
可湿性粉剂
场地
移位
... 等
其他资料:
- 除非您只是在SOAP主体中转换负载,否则您可能需要对SOAP头
xmlns:soapenv=”执行相同的操作http://schemas.xmlsoap.org/soap/envelope/“
- 如果目标是Html,还应该在样式表中设置
- 您可以进一步使用xsl:for each
D 630124 01 0 0 0 0 0 1 3 2014-09-30T00:00:00+02:00 0030 NEW C LC11 LC11 FACILITY-1 0030 D 630121 01 0 0 1 0 0 1 1 2014-09-30T00:00:00+02:00 0030 CHECKED B LC11 LC11 FACILITY-1 0030 D 630122 01 1 1 0 0 0 1 2 2014-09-30T00:00:00+02:00 0030 APPLIED B LC11 LC11 FACILITY-1 0030
WP Site Shift
LC11 0030 3
LC11 0030 1
LC11 0030 2
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:m="http://www.ibm.com/maximo"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
exclude-result-prefixes="soapenv m">
<xsl:output method="html"/>
<xsl:template match="/" >
<xsl:apply-templates select="m:QueryMXCPISResponse/m:MXCPISSet" />
</xsl:template>
<xsl:template match="m:MXCPISSet">
<html>
<body>
<table>
<tbody>
<tr>
<th>WP</th>
<th>Site</th>
<th>Shift</th>
</tr>
<xsl:for-each select="m:CPIS">
... etc.