0

次の XML があり、2 番目の値だけが必要です...どうすればよいですか?

XML:

<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>
        <GetVersionCollectionResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
          <GetVersionCollectionResult>
            <Versions>
              <Version AssignedTo="value" />
              <Version AssignedTo="This value I want to get" />
              <Version AssignedTo="value" />
              <Version AssignedTo="value" />
            </Versions>
          </GetVersionCollectionResult>
        </GetVersionCollectionResponse>
      </soap:Body>
    </soap:Envelope>

各値を取得するための XML リクエスト (2 番目の値のみを取得するように変更するにはどうすればよいですか?)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="text" indent="no"></xsl:output>
        <xsl:template name="ShowVariables" match="/" >
            <xsl:for-each select="//*[name()='Version']">
                <xsl:value-of select="@AssignedTo" />
            </xsl:for-each>
        </xsl:template>
</xsl:stylesheet>

よろしくお願いします。

よろしく、サイモン

4

1 に答える 1

1

スタイルシートでも、XML ドキュメントで使用されている名前空間宣言する必要があります。

スタイルシート

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:sharepoint="http://schemas.microsoft.com/sharepoint/soap/">

  <xsl:output method="text" indent="no"/>

  <xsl:template match="/">
    <xsl:value-of select="//sharepoint:Version[2]/@AssignedTo"/>
  </xsl:template>
</xsl:stylesheet>

または、より正確にしたい場合:

<xsl:value-of select="soap:Envelope/soap:Body/sharepoint:GetVersionCollectionResponse/sharepoint:GetVersionCollectionResult/sharepoint:Versions/sharepoint:Version[2]/@AssignedTo"/>

出力

This value I want to get
于 2013-02-21T08:12:31.263 に答える