1

我对 XSLT 有疑问。我正在尝试通过 XPATH 获取标签的值,但我不知道该怎么做。

我正在尝试使用此 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>  

任何人都可以帮助我吗?

谢谢

4

1 回答 1

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 中使用该前缀,其次NewDataSetTable1.

vpf:Payload[....]/t:DescargarFicheroPendienteResponse/
    t:DescargarFicheroPendienteResult/NewDataSet/Table1/Nombre
于 2013-07-24T11:21:37.307 回答