使用XSLT删除名称空间前缀而不删除名称空间

2020-09-05 11:25发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我正在一种情况下,我需要删除命名空间前缀而不删除命名空间。

我在这里使用2个XSLT映射来做到这一点。 第一个是删除名称空间前缀,第二个是添加名称空间。

第一个XSLT映射:

 <?xml version =" 1.0" encoding =" UTF-8"?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  

第二个XSLT添加名称空间:

 <?xml版本=" 1.0"编码=" utf-8"?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 

任何人都可以建议将两个代码合并。

谢谢!

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我正在一种情况下,我需要删除命名空间前缀而不删除命名空间。

我在这里使用2个XSLT映射来做到这一点。 第一个是删除名称空间前缀,第二个是添加名称空间。

第一个XSLT映射:

 <?xml version =" 1.0" encoding =" UTF-8"?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  

第二个XSLT添加名称空间:

 <?xml版本=" 1.0"编码=" utf-8"?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 

任何人都可以建议将两个代码合并。

谢谢!

付费偷看设置
发送
5条回答
小c菟菟
1楼-- · 2020-09-05 11:57

您好Rajeev

您是否有机会浏览以下博客,这些博客是通过Communication Channel中的XML Anonymizer Bean完成的。

https://blogs.sap.com/2014/10/02/remove-namespace-by-xmlanonymizer-bean-in-communication-channel/

https://answer.sap.com/questions/12579986/xslt-to-remove-namespace-from-specific-element-in.html

感谢和问候-Rajesh PS

黑丝骑士
2楼-- · 2020-09-05 11:54

嗨Rajesh,

感谢您的回复。

是的,我们也尝试过相同的操作,但是只需要使用XSLT进行操作,因为在XSLT之后,我必须对JAVA映射进行一些更改以对XML进行签名。

该bean也不适合我,我在某处读到该XML Anonymizer Bean在SOAP-Axis中工作。

谢谢!

小灯塔
3楼-- · 2020-09-05 12:18

您好,Rajeev,

请提供转换后所需的源XML和最终XML。 您要删除前缀后指示xml的签名。 请同样解释。 Java映射代码可以在单个映射中完成所有这些操作。

问候

Anupam

樱桃小丸子0093
4楼-- · 2020-09-05 12:11

在Java映射中,我正在签署上述目标XML。

您可以在 https://answers.sap.com/questions/12716648/need-help-in-java-mapping-for-signing-the-xml-digi.html

我发现在上述代码中删除名称空间的困难。 那就是为什么添加了单独的XSLT映射。

谢谢!

您好拉吉耶夫

请尝试以下代码。 这是我为某些较旧版本的PI编写的。 您始终可以将代码升级为抽象转换类。 这将解决名称空间问题,以后可以使用自己的代码来签署xml。

 导入java.io.FileInputStream;
 导入java.io.FileOutputStream;
 导入java.io.InputStream;
 导入java.io.OutputStream;
 导入java.io.PrintWriter;
 导入java.io.StringWriter;
 导入java.util.Map;


 导入javax.xml.parsers.DocumentBuilder;
 导入javax.xml.parsers.DocumentBuilderFactory;
 导入javax.xml.transform.Transformer;
 导入javax.xml.transform.TransformerFactory;
 导入javax.xml.transform.dom.DOMSource;
 导入javax.xml.transform.stream.StreamResult;


 导入org.w3c.dom.Document;
 导入org.w3c.dom.Element;
 导入org.w3c.dom.NamedNodeMap;
 导入org.w3c.dom.Node;
 导入org.w3c.dom.NodeList;


 导入com.sap.aii.mapping.api.AbstractTrace;
 导入com.sap.aii.mapping.api.StreamTransformation;
 导入com.sap.aii.mapping.api.StreamTransformationException;




 公共类ChangeXMLNamespace2实现StreamTransformation {


 静态AbstractTrace跟踪;

 私有静态无效visitChildNodes(Document docOut,父元素,NodeList nList)
 {
 System.out.println("调用访问");
 对于(int temp = 0; temp                                                                     

一周热门 更多>