だとき、私は私は
私のXMLを持つレコードを兄弟と私は兄弟の値を取得しようとしていますの束を持つXML文書を持っている:
<Transaction>
<Record Name = "SENDER" RecNum = "1">
<Segment_Tag>SENDER</Segment_Tag>
<SENDER01>5499953664103</SENDER01>
<SENDER02>UTILMD</SENDER02>
</Record>
<Record Name = "BGM" RecNum = "2">
<Segment_Tag>BGM</Segment_Tag>
<BGM01>E44</BGM01>
<BGM03>260</BGM03>
<BGM05>SIS20170802181883607</BGM05>
<BGM06>9</BGM06>
<BGM07>NA</BGM07>
</Record>
<Record Name = "DTM" RecNum = "3">
<Segment_Tag>DTM</Segment_Tag>
<DTM01>137</DTM01>
<DTM02>201708021227</DTM02>
<DTM03>203</DTM03>
</Record>
<Record Name = "DTM" RecNum = "4">
<Segment_Tag>DTM</Segment_Tag>
<DTM01>735</DTM01>
<DTM02>+0100</DTM02>
<DTM03>406</DTM03>
</Record>
<Record Name = "MKS" RecNum = "5">
<Segment_Tag>MKS</Segment_Tag>
<MKS01>23</MKS01>
</Record>
<Record Name = "NAD" RecNum = "6">
<Segment_Tag>NAD</Segment_Tag>
<NAD01>MR</NAD01>
<NAD02>5499953664103</NAD02>
<NAD04>9</NAD04>
</Record>
<Record Name = "NAD" RecNum = "7">
<Segment_Tag>NAD</Segment_Tag>
<NAD01>MS</NAD01>
<NAD02>5414490000504</NAD02>
<NAD04>9</NAD04>
</Record>
<Record Name = "IDE" RecNum = "8">
<Segment_Tag>IDE</Segment_Tag>
<IDE01>24</IDE01>
<IDE02>SIS20170802181883607</IDE02>
<Record Name = "IDEDTM" RecNum = "9">
<Segment_Tag>IDEDTM</Segment_Tag>
<DTM201>97</DTM201>
<DTM202>201708</DTM202>
<DTM203>203</DTM203>
</Record>
<Record Name = "STS" RecNum = "10">
<Segment_Tag>STS</Segment_Tag>
<STS01>7</STS01>
<STS02>64</STS02>
<STS05>BA5</STS05>
<STS06>BEL</STS06>
<STS07>260</STS07>
</Record>
<Record Name = "LOC" RecNum = "11">
<Segment_Tag>LOC</Segment_Tag>
<LOC01>172</LOC01>
<LOC02>541449020703505315</LOC02>
<LOC04>9</LOC04>
</Record>
<Record Name = "IDERFF" RecNum = "12">
<Segment_Tag>IDERFF</Segment_Tag>
<RFF01>TN</RFF01>
<RFF02>281945</RFF02>
</Record>
<Record Name = "IDENAD" RecNum = "13">
<Segment_Tag>IDENAD</Segment_Tag>
<NAD101>DDQ</NAD101>
<NAD102>5425037700016</NAD102>
<NAD104>9</NAD104>
</Record>
</Record>
<Record Name = "BGM" RecNum = "14">
<Segment_Tag>BGM</Segment_Tag>
<BGM01>414</BGM01>
<BGM05>ARI20170802225703376</BGM05>
<BGM06>9</BGM06>
<BGM07>NA</BGM07>
</Record>
<Record Name = "DTM" RecNum = "15">
<Segment_Tag>DTM</Segment_Tag>
<DTM01>137</DTM01>
<DTM02>201708021228</DTM02>
<DTM03>203</DTM03>
</Record>
<Record Name = "DTM" RecNum = "16">
<Segment_Tag>DTM</Segment_Tag>
<DTM01>735</DTM01>
<DTM02>+0100</DTM02>
<DTM03>406</DTM03>
</Record>
<Record Name = "MKS" RecNum = "17">
<Segment_Tag>MKS</Segment_Tag>
<MKS01>23</MKS01>
</Record>
<Record Name = "NAD" RecNum = "18">
<Segment_Tag>NAD</Segment_Tag>
<NAD01>MR</NAD01>
<NAD02>5499953664103</NAD02>
<NAD04>9</NAD04>
</Record>
<Record Name = "NAD" RecNum = "19">
<Segment_Tag>NAD</Segment_Tag>
<NAD01>MS</NAD01>
<NAD02>5414490000504</NAD02>
<NAD04>9</NAD04>
</Record>
<Record Name = "IDE" RecNum = "20">
<Segment_Tag>IDE</Segment_Tag>
<IDE01>24</IDE01>
<IDE02>ARI20170802225703376</IDE02>
<Record Name = "IDEDTM" RecNum = "21">
<Segment_Tag>IDEDTM</Segment_Tag>
<DTM201>92</DTM201>
<DTM202>201707142300</DTM202>
<DTM203>203</DTM203>
</Record>
<Record Name = "STS" RecNum = "22">
<Segment_Tag>STS</Segment_Tag>
<STS01>E01</STS01>
<STS03>260</STS03>
<STS04>39</STS04>
<STS05>E35</STS05>
<STS07>260</STS07>
</Record>
<Record Name = "LOC" RecNum = "23">
<Segment_Tag>LOC</Segment_Tag>
<LOC01>172</LOC01>
<LOC02>541449060016130774</LOC02>
<LOC04>9</LOC04>
</Record>
<Record Name = "IDERFF" RecNum = "24">
<Segment_Tag>IDERFF</Segment_Tag>
<RFF01>TN</RFF01>
<RFF02>172140000045770</RFF02>
</Record>
<Record Name = "IDECCI" RecNum = "25">
<Segment_Tag>IDECCI</Segment_Tag>
<CCI02>E14</CCI02>
<CCI04>260</CCI04>
<Record Name = "IDECAV" RecNum = "26">
<Segment_Tag>IDECAV</Segment_Tag>
<CAV01>B18</CAV01>
<CAV02>BEL</CAV02>
<CAV03>260</CAV03>
</Record>
</Record>
<Record Name = "IDENAD" RecNum = "27">
<Segment_Tag>IDENAD</Segment_Tag>
<NAD101>IT</NAD101>
<NAD111>RUE JOSEPH DECOOMAN</NAD111>
<NAD112>89 221</NAD112>
<NAD115>GREZ-DOICEAU</NAD115>
<NAD116>1390</NAD116>
<NAD117>BE</NAD117>
</Record>
</Record>
</Transaction>
マイコード:
<xsl:for-each select="Transaction/Record[@Name='IDE']" >
<xsl:choose>
<xsl:when test="../Record[@Name='BGM']/BGM01.='414'">
<xsl:call-template name="ChangeResponse"/>
</xsl:when>
<xsl:when test="../Record[@Name='BGM']/BGM01.='406'">
<xsl:call-template name="DropRequest"/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
問題は、BGMとIDEが兄弟であり、IDEが現在のノードである場合、BGMレコードに到達するために親に移動する必要があるため、最初のB GM値だけが返されることです。私はIDE値の直前にあるBGM値を取得する方法を見つけることを試みています。私は先行兄弟を使ってみましたが、前のIDEの値とその前のBGMの値を調べています。私は各IDEの現在のノード内に留まり、以前のBGMの値を評価する必要がありますが、BGMはIDEの兄弟ですので、IDEで始めるときにxpathを使ってB GMを取得する方法がわかりません。
最初はBGMの後に[1]を使用していませんでしたが、動作していませんでしたが、[1]を持つ別の投稿が見つかりました。 –