-1
我有這個基本的SOAP響應:XSLT和SOAP命名空間:如何添加
<?xml version="1.0" encoding="WINDOWS-1252" standalone="yes"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body xmlns="http://www.xxx.com/dotnet/types/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<a>
<b>
<c>
c-value
</c>
b-value
</b>
a-value
</a>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
,我想輸出的C節點只值:C-值。
我不明白爲什麼這個XSL是不工作:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:value-of select="//c"/>
</xsl:template>
</xsl:stylesheet>
看來,問題出在名字空間在<SOAP-ENV:Body xmlns="http://www.xxx.com/dotnet/types/"
如果我刪除它,它的工作原理。
我想我應該改變xpath在select="//c"
或者在xls中添加需要的命名空間,但是我不能把它弄清楚!
的可能重複[如何從XML與XSLT命名空間 '選擇'?](http://stackoverflow.com/questions/284094/how-to -select-from-xml-with-namespaces-with-xslt) – 2013-04-06 16:40:55
的確的確......經過數小時的搜索和試用後,這些鏈接在編寫問題時出現,這就是爲什麼我將它包含在我的答案中。這是一樣的情況,但適用於SOAP,很容易忽略它。但我同意,這是重複的 – Glasnhost 2013-04-07 09:34:39