0

以下の 2 つの xml 応答があります。

response1.xml

      <UploadFileResponse xmlns="http://SharepointTask">
         <UploadFileResult>
            <taskData>
               <TaskID>47</TaskID>
               <TaskState>Completed</TaskState>
            </taskData>
         </UploadFileResult>
      </UploadFileResponse>

response2.xml

      <UploadFileResponse xmlns="http://SharepointTask">
         <UploadFileResult>
            <taskData>
               <TaskID>48</TaskID>
               <TaskState>Completed</TaskState>
            </taskData>
         </UploadFileResult>
      </UploadFileResponse>

ここで、XSLT を適用して、以下のような出力を得たいと考えています。

      <UploadFileResponse xmlns="http://SharepointTask">
         <UploadFileResult>
            <taskData>
               <TaskID>47</TaskID>
               <TaskState>Completed</TaskState>
            </taskData>
          <taskData>
               <TaskID>48</TaskID>
               <TaskState>Completed</TaskState>
            </taskData>
         </UploadFileResult>
      </UploadFileResponse>

これら 2 つの xml を変換して特定のノードを取得する方法がわかりません。私は XSLT の基本的な考え方を持っており、助けていただければ幸いです。

4

2 に答える 2

0

document を使用してファイルを読み取ることができます。http://www.w3schools.com/xsl/func_document.asp

于 2013-07-17T08:44:05.033 に答える
0

はい、document() 関数を使用して、xsl スタイルシートに 2 番目の xml ファイルをインポートして解析することができます (スタイルシートにリンクされているファイルの上に)。

たとえば、次のことができます。

<xsl:variable name="response2"><xsl:value-of select="'response2.xml'"/></xsl:variable>
<xsl:value-of select="document($response2)//UploadFileResponse/UploadFileResult/taskData/TaskID"/>

この例では 48 が出力されます。

于 2013-07-17T10:22:22.163 に答える