Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSL转换解析相同名称列_Xml_Xslt_Soap_Cdata_Envelope - Fatal编程技术网

Xml XSL转换解析相同名称列

Xml XSL转换解析相同名称列,xml,xslt,soap,cdata,envelope,Xml,Xslt,Soap,Cdata,Envelope,我有xml: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <processOCIMessageRespons

我有xml:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <processOCIMessageResponse xmlns="urn:com:broadsoft:webservice">
            <processOCIMessageReturn><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>
                <MyDocument protocol="OCI" xmlns="C" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                    <sessionId xmlns="">12345</sessionId>
                    <command echo="" xsi:type="AuthenticationResponse" xmlns="">
                        <userId>user_test</userId>
                    </command>
                    <command echo="" xsi:type="ServiceProvider" xmlns="">
                        <ProviderTable>
                            <colHeading>Service Provider Id</colHeading>
                            <colHeading>Service Provider Name</colHeading>
                            <colHeading>Is Enterprise</colHeading>
                            <row><col>7163939_id</col><col/><col>true</col></row>
                            <row><col>3134473_build</col><col/><col>true</col></row>
                            <row><col>11421427_group</col><col/><col>true</col></row>
                        </ProviderTable>
                    </command>
                    </MyDocument>]]>
            </processOCIMessageReturn>
        </processOCIMessageResponse>
    </soapenv:Body>
</soapenv:Envelope>

12345
用户测试
服务提供商Id
服务提供商名称
是企业
7163939_idtrue
3134473_
11421427_组正确
]]>
如何从col标记中提取值?因为标记在一行中重复了几次

这就是我到目前为止所做的:

<xsl:for-each select="./command/ProviderTable/row">
    <xsl:element name="SERVICE_PROVIDER">
        <SERVICE_PROVIDER_ID>
            <xsl:value-of select="col"/>
        </SERVICE_PROVIDER_ID>
        <SERVICE_PROVIDER_NAME>
            <xsl:value-of select="col"/>
        </SERVICE_PROVIDER_NAME>
        <IS_ENTERPRISE>
            <xsl:value-of select="col">
        </IS_ENTERPRISE>
    </xsl:element>
</xsl:for-each>

预期产量

<?xml version="1.0"?>
<main>
    <ProviderTable>
        <SERVICE_PROVIDER_ID>7163939_id</SERVICE_PROVIDER_ID>
        <SERVICE_PROVIDER_NAME></SERVICE_PROVIDER_NAME>
        <IS_ENTERPRISE>true</IS_ENTERPRISE>
    </ProviderTable>
    <ProviderTable>
        <SERVICE_PROVIDER_ID>3134473_build</SERVICE_PROVIDER_ID>
        <SERVICE_PROVIDER_NAME></SERVICE_PROVIDER_NAME>
        <IS_ENTERPRISE>true</IS_ENTERPRISE>
    </ProviderTable>
    <ProviderTable>
        <SERVICE_PROVIDER_ID>11421427_group</SERVICE_PROVIDER_ID>
        <SERVICE_PROVIDER_NAME></SERVICE_PROVIDER_NAME>
        <IS_ENTERPRISE>true</IS_ENTERPRISE>
    </ProviderTable>
</main>

7163939_id
真的
3134473_建筑
真的
11421427_组
真的
如果每个
元素数始终为3,则可以使用
元素的
索引来访问值。XSLT中的索引从
1
开始,即
col[1]
col[2]
等等

可按如下方式修改

<xsl:for-each select="./command/ProviderTable/row">
    <xsl:element name="SERVICE_PROVIDER">
        <SERVICE_PROVIDER_ID>
            <xsl:value-of select="col[1]"/>
        </SERVICE_PROVIDER_ID>
        <SERVICE_PROVIDER_NAME>
            <xsl:value-of select="col[2]"/>
        </SERVICE_PROVIDER_NAME>
        <IS_ENTERPRISE>
            <xsl:value-of select="col[3]">
        </IS_ENTERPRISE>
    </xsl:element>
</xsl:for-each>


请添加预期输出。7163939_id true 3134473_build true 11421427_group true什么不起作用?请分享整个XSLT,这将让您了解您正在尝试的内容。col[1]等不起作用。。。模板太长。出现错误:
数组([type]=>2[message]=>XSLTProcessor::transformToXml():没有与此对象关联的样式表[file]=>/var/www/html/online-toolz.com/functions/XSLT.php[line]=>26)错误:XSLTProcessor::transformToXml():没有与此对象关联的样式表