初めてxsltの作成を扱っていますが、これは本当に面倒です。XML用のxsltの作成に困難があります
私はXMLをリクエストしており、xsltを使用すると、下記のo/pでXMLを生成することになっています。
この操作を実行するユーティリティは、すでにC#で構築されています。 XMLから値を正しく読み取り、期待される形式の新しいXMLを作成するXSLTを作成する必要があります。私は、XMLを変換するためにXSLTを記述しようとしています
(I/P):
<s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing"
xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Body>
<ExecuteESI xmlns="http://TTTT.com/Enterprise/ServiceGateways/">
<context xmlns:b="http://TTTT.com/Enterprise/ServiceGateways/Core/Contracts/"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<request xmlns:b="http://TTTT.com/Enterprise/ServiceGateways/ExternalService/Request/"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<b:Message>
<ns2:ReqProv xmlns:ns2="http://TTTT.com/TTTT/TTTTestJSONESIRequest/">
<ns2:CID>TTTT</ns2:CID>
<ns2:TIME>18732081720160855</ns2:TIME>
<ns2:HASH>40dad29c4ae9303c975639f7700bf517e6e72fbf5723c7905a74fde0d5452da0</ns2:HASH>
</ns2:ReqProv>
</b:Message>
</request>
</context>
</ExecuteESI>
</s:Body>
</s:Envelope>
下記フォーマット(O/P)には:
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">CID=TTTT&TIME=18732081720160855&HASH=40dad29c4ae9303c975639f7700bf517e6e72fbf5723c7905a74fde0d545</string>
私は、次のXSLTを、書かれています私は<xsl:value-of...
と<xsl:template match...
のさまざまな組み合わせを試してみました
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:ns="http://asurion.com/TTTT/TTTTTestJSONESIRequest/"
xmlns="http://schemas.microsoft.com/2003/10/Serialization/"
exclude-result-prefixes="msxsl xsl ns">
<xsl:output method="xml" />
<xsl:template match="/">
<xsl:variable name="CID">
<xsl:value-of select="./ns:ReqProv/ns:CID"/>
</xsl:variable>
<xsl:variable name="TIME">
<xsl:value-of select="./ns:ReqProv/ns:TIME"/>
</xsl:variable>
<xsl:variable name="HASH">
<xsl:value-of select="./ns:ReqProv/ns:HASH"/>
</xsl:variable>
CID=<xsl:value-of select="$CID" />&TIME=<xsl:value-of select="$TIME" />&HASH=<xsl:value-of select="$HASH" />
</xsl:template>
</xsl:stylesheet>
を動作しません。と<xsl:template name....
が動作するようだ。
必要な出力を転記してください。 –
' 'と組み合わせて[concat()関数](http://stackoverflow.com/q/10395488/205233)を使用すると、望ましい結果が得られます。 BTW:SOAPサービスの応答のようなものですから、実際には変換されたXMLが必要ですか、単に応答全体を逆シリアル化してプロパティにアクセスして目的の文字列を取得できませんでしたか? –
Filburt
@RudramuniTP OPは既に*以下の形式* – Filburt