首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示操作数据值的XSL

显示操作数据值的XSL
EN

Stack Overflow用户
提问于 2018-06-08 20:54:28
回答 1查看 35关注 0票数 0

我有以下文档,其中输入了NetIQ IDM策略:

代码语言:javascript
复制
<nds dtdversion="4.0" ndsversion="8.x">
    <source>
    <product edition="Advanced" version="4.6.2.0">DirXML</product>
    <contact>NetIQ Corporation</contact>
    </source>
    <output>
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope">
        <soap-env:Body>
        <status dest-dn="" event-id="0" level="success">
            <application>DirXML</application>
            <module>wdStudio</module>
            <object-dn>\IAMT-WD-VAULT\OSU\vault\users\IDM800159</object-dn>
            <component>Publisher</component>
            <operation-data op-email_id="bruce.wayne@batcave.com" op-employee_id="100000021" op-idm_id="IDM800159" op-med_ctr_id="" op-nameN="wayne.206"/>
        </status>I am here</soap-env:Body>
    </soap-env:Envelope>
    </output>
</nds>

我想提取操作数据值,使其成为代码的一部分,如下所示:

代码语言:javascript
复制
<op-email_id>bruce.wayne@batcave.com</op-email_id>
<op-employee_id>100000021</op-employee_id>
<op-idm_id>IDM800159</op-idm_id>
<op-nameN>wayne.206</op-nameN>

请注意,由于op-med_ctr_id为空/空/null,因此不会添加它。最终目标是将其添加为netIQ中SOAP驱动程序响应的一部分。

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 21:22:46

实现这一点的一种可能性是通过简单地将每个xsl:value-of包装在一个xsl:if中。如果你愿意,它也可以通过模板来实现。

代码语言:javascript
复制
<xsl:template match="/nds/output/soap-env:Envelope/soap-env:Body/status/operation-data">
    <xsl:if test="normalize-space(@op-email_id)">
        <op-email_id><xsl:value-of select="@op-email_id" /></op-email_id>
    </xsl:if>
    <xsl:if test="normalize-space(@op-employee_id)">
        <op-employee_id><xsl:value-of select="@op-employee_id" /></op-employee_id>
    </xsl:if>
    <xsl:if test="normalize-space(@op-idm_id)">
        <op-idm_id><xsl:value-of select="@op-idm_id" /></op-idm_id>
    </xsl:if>
    <xsl:if test="normalize-space(@op-med_ctr)">
        <op-med_ctr_id><xsl:value-of select="@op-med_ctr_id" /></op-med_ctr_id>
    </xsl:if>
    <xsl:if test="normalize-space(@op-nameN)">
        <op-nameN><xsl:value-of select="@op-nameN" /></op-nameN>
    </xsl:if>
</xsl:template>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50761123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档