2013-07-24 141 views
1

我對XSLT有懷疑。我試圖通過XPATH獲取標籤的值,但我不知道該怎麼做。通過XPATH獲取標籤的值

我tryng ACCES這個XPTAH:

<xsl:copy-of select="/vpf:Msg/vpf:Body/vpf:Payload[./@Role=&apos;C&apos; and ./@id=&apos;atom1&apos;]/*/Table1/Nombre"> 

但是這是不可能的。

我也有代碼的嘗試:

<xsl:copy-of select="/vpf:Msg/vpf:Body/vpf:Payload[./@Role=&apos;C&apos; and ./@id=&apos;atom1&apos;]/DescargarFicheroPendienteResponse/DescargarFicheroPendienteResult/Table1/Nombre"> 

我想個問題是標籤:

這是示例XML:

<Payload Role="C" id="atom1" statusNo="0" statusMsg="success" reference="atom2" payload="atom2" calltype="solicit response (call/reply)" adapter="WSAS"> 
    <http.header> 
     <http.header.info id="X-AspNet-Version" value="2.0.50727"/> 
     <http.header.info id="Date" value="Wed, 24 Jul 2013 10:23:53 GMT"/> 
     <http.header.info id="Content-Length" value="494"/> 
     <http.header.info id="MicrosoftOfficeWebServer" value="5.0_Pub"/> 
     <http.header.info id="Content-Type" value="text/xml; charset=utf-8"/> 
     <http.header.info id="Server" value="Microsoft-IIS/6.0"/> 
     <http.header.info id="X-Powered-By" value="ASP.NET"/> 
     <http.header.info id="Cache-Control" value="private, max-age=0"/> 
    </http.header> 
    <DescargarFicheroPendienteResponse xmlns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <DescargarFicheroPendienteResult> 
      <NewDataSet xmlns=""> 
       <Table1> 
        <Nombre>0</Nombre> 
        <Contenido/> 
       </Table1> 
      </NewDataSet> 
     </DescargarFicheroPendienteResult> 
    </DescargarFicheroPendienteResponse> 
</Payload> 

有人能幫助我?

感謝

+0

你應該首先重新考慮你的問題。你的例子xml根本不匹配你的xpath。 (xpath以'MSg'開頭,但xml以'Payload'開頭,還需要顯示xslt的一個小工作版本,我們不能看到你是否準確地添加了命名空間等等。你爲什麼使用'''? –

回答

1

在XML鑑於此:

<DescargarFicheroPendienteResponse xmlns="http://tempuri.org/" ....> 
    <DescargarFicheroPendienteResult> 
     <NewDataSet xmlns=""> 
      <Table1> 

XPath表達式

vpf:Payload[....]/DescargarFicheroPendienteResponse/ 
    DescargarFicheroPendienteResult/Table1/Nombre 

肯定是不行的 - 首先,在XML的DescargarFicheroPendienteResponseDescargarFicheroPendienteResult元素在http://tempuri.org/命名空間,因此您需要將其映射到樣式表中的前綴(例如xmlns:t="http://tempuri.org/"),然後在XPath中使用該前綴,其次在Table1之上有NewDataSet元素。

vpf:Payload[....]/t:DescargarFicheroPendienteResponse/ 
    t:DescargarFicheroPendienteResult/NewDataSet/Table1/Nombre 
+0

非常感謝你!!!!現在它是正確的! – Mariano