Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
XSLT从XMLNS/XML获取正确的GUID_Xml_Xslt_Xml Namespaces_Xsi - Fatal编程技术网

XSLT从XMLNS/XML获取正确的GUID

XSLT从XMLNS/XML获取正确的GUID,xml,xslt,xml-namespaces,xsi,Xml,Xslt,Xml Namespaces,Xsi,我试图从XMLNS/XML文件中获取正确的GGUID 我需要正确的GGUID,这样我就可以用这个ID在我的进程上记录一些操作 以下是我的XMLNS/XML: <?xml version="1.0"?> <s:Envelope> <s:Body> <element:saveAndReturnObjectResponse xmlns:element="http://some-link">

我试图从XMLNS/XML文件中获取正确的GGUID

我需要正确的GGUID,这样我就可以用这个ID在我的进程上记录一些操作

以下是我的XMLNS/XML:

<?xml version="1.0"?>
<s:Envelope>
    <s:Body>
        <element:saveAndReturnObjectResponse xmlns:element="http://some-link">
            <element:return>
                <element_II:fields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:element_II="http://some-link" xsi:type="element_II:GGUIDField">
                    <element_II:name>GGUID</element_II:name>
                    <element_II:fieldType>GGUID</element_II:fieldType>
                    <element_II:value>D6443FCE29334414AF2DC5A30C90506C</element_II:value>
                </element_II:fields>

                <element_II:fields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:element_II="http://some-link" xsi:type="element_II:GGUIDField">
                    <element_II:name>OWNERGUID</element_II:name>
                    <element_II:fieldType>GGUID</element_II:fieldType>
                    <element_II:value>00000000000000000000000000000000</element_II:value>
                </element_II:fields>
            </element:return>
        </element:saveAndReturnObjectResponse>
    </s:Body>
</s:Envelope>

吉德
吉德
D6443FCE29334414AF2DC5A30C90506C
所有者权益
吉德
00000000000000000000000000000000
XMLNS/XML是Statyc,因此不能对此进行任何更改

我想说的是:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:some-element="http://some-link" xmlns:some-element_II="http://some-link" xmlns:ns1="http://some-link" version="2.0">
    <xsl:output media-type="text/xml" method="xml"></xsl:output>
    <xsl:template match="/">
        <xsl:if test="/s:Envelope/s:Body/element:saveAndReturnObjectResponse/element:return/element_II:fields[@xsi:type='element_II:GGUIDField']/element_II:name='GGUID'">
            <xsl:value-of select="CONCAT('0x',/s:Envelope/s:Body/element:saveAndReturnObjectResponse/element:return/element_II:fields[@xsi:type='element_II:GGUIDField']/element_II:value)"></xsl:value-of>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

到目前为止,我的想法还不错,但我的成果如下:

<?xml version="1.0"?>
<root>
    <element_II:value>0xD6443FCE29334414AF2DC5A30C90506C 0x00000000000000000000000000000000</element_II:value>
</root>

0xD6443FCE29334414AF2DC5A30C90506C 0x00000000000000000000
我对输出的真正期望是:

<?xml version="1.0"?>
<root>
    <element_II:value>0xD6443FCE29334414AF2DC5A30C90506C</element_II:value>
</root>

0xD6443FCE29334414AF2DC5A30C90506C

这两个元素都与

/s:Envelope/s:Body/element:saveAndReturnObjectResponse/element:return/element_II:fields[@xsi:type='element_II:GGUIDField']/element_II:value
所以你会得到两个结果

如果你只想要第一个,也可以尝试过滤

element_II:name='GGUID'
e、 g


顺便说一句,Concat不起作用,因为它有两个输入<代码>不允许将多个项目的序列作为concat()的第二个参数。我的输出就是一个示例,它看起来是什么样子。如果我删除Concat,它看起来是这样的:
D6443FCE29334414AF2DC5A30C90506C 00000000000000000000000000
/s:Envelope/s:Body/element:saveAndReturnObjectResponse/element:return/element_II:fields[@xsi:type='element_II:GGUIDField'][element_II:name='GGUID']/element_II:value