0
私はこのスタイルに必要なxmlを持っていますが、icanは適切に動作するためにもfor.eachを取得します。それぞれのCONNECTIVITY_MESSAGE_LINEに対して、NAMEが 'HEADER' ...新しいタグ付きフラットxmlから階層型xml
私はVS2013
私を使用
<?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" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:element name="SEPA_HEADER">
<xsl:value-of select=". = HEADER"/>
<xsl:if test="*//NAME[text() = 'HEADER']">
<p>x</p>
</xsl:if>
<xsl:for-each select="CONNECTIVITY_MESSAGE/MESSAGE_LINE/CONNECTIVITY_MESSAGE_LINE">
<P>1</P>
<xsl:choose>
<xsl:when test="//NAME[text() = 'HEADER']">
<P>CHOOSE</P>
</xsl:when>
<xsl:otherwise>
<p>123</p>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
...私は少なくとも文が正しい得ることができるように私は読んで読んだことがある、...始めるのに役立ちたいです厄介なxml:
<?xml version="1.0" encoding="UTF-8"?>
<CONNECTIVITY_MESSAGE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:ifsworld-com:connectivity_message" ID="CONNECTIVITY_MESSAGE-6.0">
<APPLICATION_MESSAGE_ID>N/A</APPLICATION_MESSAGE_ID>
<APPLICATION_RECEIVER_ID>N/A</APPLICATION_RECEIVER_ID>
<CLASS_ID>ISO20022</CLASS_ID>
<CONNECTIVITY_VERSION>2.1.0</CONNECTIVITY_VERSION>
<EXEC_TIME>2017-04-06T15:20:49</EXEC_TIME>
<MEDIA_CODE>EDI</MEDIA_CODE>
<OBJSTATE>Released</OBJSTATE>
<RECEIVER>BANK</RECEIVER>
<SENDER>IFS</SENDER>
<STATE>Released</STATE>
<VERSION>N/A</VERSION>
<MESSAGE_LINES>
<CONNECTIVITY_MESSAGE_LINE>
<C01>ORDER_ID</C01>
<C02>MESSAGE_ID</C02>
<C03>CONTROL_SUM</C03>
<C04>PURCHASENO</C04>
<MESSAGE_LINE>1.0</MESSAGE_LINE>
<NAME>HEADER</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P1</C01>
<C02>line_rec_.Line_No</C02>
<MESSAGE_LINE>2.0</MESSAGE_LINE>
<NAME>PAYMENT</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P1</C01>
<C02>T1.1</C02>
<MESSAGE_LINE>3.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P1</C01>
<C02>T1.2</C02>
<MESSAGE_LINE>4.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P1</C01>
<C02>T1.3</C02>
<MESSAGE_LINE>5.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P2</C01>
<C02>line_rec_.Line_No</C02>
<MESSAGE_LINE>6.0</MESSAGE_LINE>
<NAME>PAYMENT</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P2</C01>
<C02>T2.1</C02>
<MESSAGE_LINE>7.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P2</C01>
<C02>T2.2</C02>
<MESSAGE_LINE>8.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P3</C01>
<C02>line_rec_.Line_No</C02>
<MESSAGE_LINE>9.0</MESSAGE_LINE>
<NAME>PAYMENT</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P3</C01>
<C02>T3.1</C02>
<MESSAGE_LINE>10.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P3</C01>
<C02>T3.2</C02>
<MESSAGE_LINE>11.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
<CONNECTIVITY_MESSAGE_LINE>
<C01>P3</C01>
<C02>T3.3</C02>
<MESSAGE_LINE>12.0</MESSAGE_LINE>
<NAME>TRANS</NAME>
<STATE>Posted</STATE>
</CONNECTIVITY_MESSAGE_LINE>
</MESSAGE_LINES>
</CONNECTIVITY_MESSAGE>
CONNECTIVITY_MESSAGEノードの_xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "urn:ifsworld-com:connectivity_message" ID = "CONNECTIVITY_MESSAGE-6.0" _その処理に問題が生じるのは、あなたのソースXMLに必要な属性ですか? – RT72
私はlinieを削除して、少なくともxpath構文を使用できることを知っています。 – Lise