xml – XSLT转换 – 动态元素名称
发布时间:2020-12-16 07:44:43 所属栏目:百科 来源:网络整理
导读:来源输入 SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"Field Value="CO Last Name"
来源输入
<SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"> <Field Value="CO Last Name" Datatype="String" Name="ContractingOfficerLastName"> </LetterInstance> </SiebelMessage> 预期结果: <?xml version="1.0" encoding="UTF-8"?> <SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"> <ContractingOfficerLastName>CO Last Name</ContractingOfficerLastName> <PONumber>POTest000001</PONumber> </LetterInstance> </SiebelMessage> 基本上获取Field元素的Name属性的值并构造一个新元素,然后获取“Value”属性的值并将其用作新元素的值.
这个XSL样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="Field"> <xsl:element name="{@Name}"> <xsl:value-of select="@Value"/> </xsl:element> </xsl:template> </xsl:stylesheet> 应用于良好的输入: <SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"> <Field Value="CO Last Name" Datatype="String" Name="ContractingOfficerLastName"/> </LetterInstance> </SiebelMessage> 生产: <SiebelMessage MessageId="1-18J35" IntObjectName="XRX R5 Letter Instance" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical"> <LetterInstance Id="1-1RUYIF" Language="ENU" TemplateType="SA"> <ContractingOfficerLastName>CO Last Name</ContractingOfficerLastName> </LetterInstance> </SiebelMessage> 我不确定在哪里< PONumber>应该是从…生成的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |