0

这些天来,我一直在越来越多地研究 XSLT,但是在过去的几个小时里,这个问题让我摸不着头脑。

我有以下 XSLT 脚本,它在服务器环境中用于接收和帮助处理 SOAP 信封的一部分。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:test="" exclude-result-prefixes="msxsl test">
<xsl:output method="xml" omit-xml-declaration="yes" indent="no"/>

    <msxsl:script implements-prefix="test" language="C#">
    public Param GetParam()
    {
        // Code here
    }
    </msxsl:script>

    <xsl:template match="/">

    <xsl:choose>

        <xsl:comment>Used by IT_E items</xsl:comment>

        <xsl:when test="helloworld">
            <xsl:text>helloworld|clientdata|username|</xsl:text>
            <xsl:value-of select="helloworld/clientdata/username"/>
            <xsl:text>$helloworld|clientdata|password|</xsl:text>
            <xsl:value-of select="helloworld/clientdata/password"/>
        </xsl:when>

是的,只是其中的一部分。完整发布会太长太无聊。现在,如您所见,我已经准备了一个 msxsl 块,但是我不知道如何继续。

简而言之,我想要实现的是获得我当前的输出:

helloworld|clientdata|username|myvalue$helloworld|clientdata|password|myvalue

然后进一步处理,全部在 XSLT 脚本中完成。基本上我会拆分 $ 字符,然后对于数组中的每个项目,拆分 | 并填充一个结构:

Param(string cmd, string class, string var, string val);

如何返回 Param 对象(我的自定义 C# 结构)而不是纯文本?任何提示让我进入正确的方向?

另外,自定义前缀是如何工作的?我可以在声明中将 URL 留空吗?


更新:

这是我在 SOAP 信封中经过另外两个删除所有 SOAP 元素的脚本处理后仍然留下的 XML。

<helloworld>
<clientdata>
    <username>test</username>
    <password>test</password>
<clientdata>

我应该从一开始就包括这个,我的道歉!

4

0 回答 0