我想得到以下全名,结果应该是" Root Administratoren"
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetAllGroupsOfUserResponse xmlns="http://fuu/fuu/fuu/">
<GetAllGroupsOfUserResult>
<Group>
<DataId>11</DataId>
<ObjectGuid>31ea4ee1-cf85-44ac-846e-6ef58542af2c</ObjectGuid>
<FullName>Root Administratoren</FullName>
</Group>
</GetAllGroupsOfUserResult>
</GetAllGroupsOfUserResponse>
</soap:Body>
</soap:Envelope>`
&#13;
我正在使用这个XML-Stylesheet
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:tmp="http://tempuri.org/">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<Result>
<xsl:for-each select="ArrayOfGroup/Group">
<FullName>
<xsl:value-of select="FullName" />
</FullName>
</xsl:for-each>
</Result>
</xsl:template>
</xsl:stylesheet>
&#13;
但是当我删除它工作的命名空间时我没有得到结果但是xml必须保持这种状态。 感谢您的帮助
问候 亚历
答案 0 :(得分:1)
为默认命名空间添加新前缀,并将其与XPath中的每个元素一起使用。 另外,添加//以获取所有ArrayOfGroup元素。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" xmlns:tmp="http://tempuri.org/"
xmlns:fuu="http://fuu/fuu/fuu/"
>
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<Result>
<xsl:for-each select="//fuu:ArrayOfGroup/fuu:Group">
<FullName>
<xsl:value-of select="fuu:FullName" />
</FullName>
</xsl:for-each>
</Result>
</xsl:template>
</xsl:stylesheet>