0
のxml:ヘンデルの名前空間 - XSLT
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetDataResponse xmlns="http://example.com/webservices/">
<GetDataResult>
<diffgr:diffgram xmlns:msdata="urn:schemas-abc-com:xml-msdata" xmlns:diffgr="urn:schemas-abc-com:xml-diffgram-v1">
<CompListData xmlns="">
<Table diffgr:id="Table1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<Comp>JL-C</Comp>
<Type>JOB</Type>
<Cost>Lakhs</Cost>
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<Comp>JL-C1</Comp>
<Type>JOB1</Type>
<Cost>Lakhs</Cost>
</Table>
</CompListData>
</diffgr:diffgram>
</GetDataResult>
</GetDataResponse>
</soap:Body>
</soap:Envelope>
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="s xsi xsd ">
<xsl:output method="xml" indent="yes"></xsl:output>
<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:if test="s:Envelope/s:Body/GetDataResponse/GetDataResult/diffgr/CompListData/TableTable[@id='Table1']/Type">
<JobType1>
<xsl:value-of
select="s:Envelope/s:Body/GetDataResponse/GetDataResult/diffgr/CompListData/TableTable[@id='Table1']/Type"></xsl:value-of>
</JobType1>
</xsl:if>
<xsl:if test="s:Envelope/s:Body/GetDataResponse/GetDataResult/diffgr/CompListData/TableTable[@id='Table2']/Type">
<JobType2>
<xsl:value-of
select="s:Envelope/s:Body/GetDataResponse/GetDataResult/diffgr/CompListData/TableTable[@id='Table2']/Type"></xsl:value-of>
</JobType2>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
出力イム取得は、XSLT
<?xml version="1.0" encoding="UTF-8"?>
の最初の行であります
身体の中で「diffgr:diffgram」を扱い、 'JobType'タグで 'Type'の値を取得する方法を教えてもらえますか?
- ありがとう、確かにかなり多くの間違い、新しい名前空間の扱い – Ranjan