2017-06-02 43 views
-2

用我有限的XSL编程我想出了这个代码的知识:XSLT帮助:复制元素<choose>

(更新的Post:XSLT现在工作 - 更新了他人的利益如果有的话)

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:nm="http://fsag.de/BusinessTransaction" 
xmlns:env="http://www.w3.org/2001/12/soap-envelope" 
exclude-result-prefixes="env"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/nm:Responses"> 
    <xsl:copy-of select="/"/> 
</xsl:template> 


<xsl:template match="/Envelope"> 
    <nm:Responses xmlns:nm="http://fsag.de/BusinessTransaction"> 
     <BTEMessages/> 
     <SystemContext/> 
       <Error> 
     <xsl:copy-of select="Body"/> 
       </Error> 
    </nm:Responses> 
</xsl:template> 
</xsl:stylesheet> 

的目的是为了处理该文件(在柱的端部),并得到下面的结果:

为“错误”的文件所需的结果:

<?xml version="1.0" encoding="UTF-8"?> 
<nm:Response xmlns:nm="http://fsag.de/BusinessTransaction"> 
    <BTEMessages/> 
    <SystemContext/> 
    <Error> 
     <Body> 
     <Response status="1"> 
      <Description>DESC</Description> 
      <Errors> 
       <Error>500</Error> 
      </Errors> 
     </Response> 
     </Body> 
    </Error> 
</nm:Response> 

为 '响应' 文件要求的结果:

<?xml version="1.0" encoding="UTF-8"?> 
<nm:Response xmlns:nm="http://fsag.de/BusinessTransaction"> 
    <BTEMessages> 
     <InOrderContext xmlns:n0="http://fsag.de/BusinessTransaction"> 
     <SendTimestamp>01-06-2017:0506230000</SendTimestamp> 
     </InOrderContext> 
     <SystemContext> 
     <Client>FDP</Client> 
     <CorrelationId>34553FTG25543SFD134</CorrelationId> 
     <BusinessContext>RECONCL</BusinessContext> 
     </SystemContext> 
    </BTEMessages> 
</nm:Response> 

*文件1:错误*

<Envelope > 
    <Body> 
     <Response status="1"> 
     <Description>DESC</Description> 
     <Errors> 
      <Error>500</Error> 
     </Errors> 
     </Response> 
    </Body> 
    </Envelope> 

文件2:响应:

<?xml version="1.0" encoding="UTF-8"?> 
<nm:Response xmlns:nm="http://fsag.de/BusinessTransaction"> 
<BTEMessage> 
    <InOrderContext> 
    <SendTimestamp>01-06-2017:0506230000</SendTimestamp> 
    </InOrderContext> 
    <SystemContext> 
    <Client>FDP</Client> 
    <CorrelationId>34553FTG25543SFD134</CorrelationId> 
    <BusinessContext>RECONCL</BusinessContext> 
    </SystemContext> 
</BTEMessage> 
</nm:Response > 

当我尝试运行XSL失败。请任何帮助吗?

+2

在你问这里之前,你需要花一个小时学习XSLT的基础知识。并且请不要一次又一次询问同一个问题(我相信这是你第三次)。 –

+0

我想在这里完成这件事。正如我前面所说,我没有经验,我正在努力解决它的xslt和它的工作规范,这就是论坛在这里帮助人们。没有在这里付出任何努力,我不求助。这是一个真正的要求,以指导如何处理。 –

+0

如果你不知道你的样式表的顶层必须有一个模板(并且没有一个测试工具可以在你没有的时候给你打电话),那么你在这里没有业务要求。更何况你已经被赋予了一个工作的例子,你甚至不能适应。 –

回答

0

XSL更新了工作版本。