Informatica powercenter Informatica Powercenter:如何在XML文档上运行XSLT转换

Informatica powercenter Informatica Powercenter:如何在XML文档上运行XSLT转换,informatica-powercenter,Informatica Powercenter,我有一个复杂的XML文档,informatica XML解析器正在努力“规范化”,如何在将其发送到XML解析器之前运行XML转换(如XSLT)来简化它 一种方法是使用标准的Java转换,并使用标准的javax.xml.transform执行转换 为此,向流中添加一个Java转换 在导入包窗格中,导入所需的java包 import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; 在He

我有一个复杂的XML文档,informatica XML解析器正在努力“规范化”,如何在将其发送到XML解析器之前运行XML转换(如XSLT)来简化它

一种方法是使用标准的Java转换,并使用标准的
javax.xml.transform
执行转换

为此,向流中添加一个Java转换

导入包
窗格中,导入所需的java包

import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

Helper code
窗格中,我们构造一个transformer对象。据我所知,非静态字段是针对每个实例创建的,因此不应该存在并发问题。(评论?)

最后,我们通过对transformer对象执行transform方法来对传入的xml文档执行转换

if( transformer == null ) {
    failSession("Transformer was null");
}

//final long startTime = System.nanoTime();
//final long endTime;

try {
    //logInfo("Recieved xml with size " + xmlin.length() );
    // logInfo("Recieved xml " + xmlin );
    final StringReader reader = new StringReader(xmlin);
    final StringWriter writer = new StringWriter();

    transformer.transform(new StreamSource(reader),new StreamResult(writer));
    xmlout = writer.toString();
   // logInfo("xmlout  " + xmlout  );
} catch (Exception e) {
     incrementErrorCount(1);
     logError(e.getMessage());
     logError(xmlin);
} 

//finally { 
//  endTime = System.nanoTime(); 
//} 

//final long duration = endTime - startTime; 
//logInfo("Duration  " + duration / 1000000000.0 );

if( transformer == null ) {
    failSession("Transformer was null");
}

//final long startTime = System.nanoTime();
//final long endTime;

try {
    //logInfo("Recieved xml with size " + xmlin.length() );
    // logInfo("Recieved xml " + xmlin );
    final StringReader reader = new StringReader(xmlin);
    final StringWriter writer = new StringWriter();

    transformer.transform(new StreamSource(reader),new StreamResult(writer));
    xmlout = writer.toString();
   // logInfo("xmlout  " + xmlout  );
} catch (Exception e) {
     incrementErrorCount(1);
     logError(e.getMessage());
     logError(xmlin);
} 

//finally { 
//  endTime = System.nanoTime(); 
//} 

//final long duration = endTime - startTime; 
//logInfo("Duration  " + duration / 1000000000.0 );