点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,
我有以下要求将xml分成两个xml文件。 是否有任何xslt/java映射方法可将如下所示的xml从单个目标xml拆分为两个目标。
输入:单个文件中有两个xml结构。
<?xml version =" 1.0" encoding =" utf-8"?>
<永久雇员>
<员工>
........
<?xml version =" 1.0" encoding =" utf-8"?>
<合同工>
<员工>
.........
目标Xml:
-------------------
OutPut1:
<?xml version =" 1.0" encoding =" utf-8"?>
Output2:
<?xml版本=" 1.0"编码=" utf-8"?> <合同雇员> <雇员> <名字>简名字> <标题>工程师标题>.......。
嗨!
例如,使用java映射,您可以拆分源文件并构建多消息输出结构。
关于Evgeniy。
嗨Bhupal!
您应该像阅读文本文件一样阅读源文件。 请勿尝试构建DOM文档。
将文件读入String变量,替换(清除)XML标头,然后添加根标记,就像我上面已经提到的那样。 之后,您将能够构建DOM文档或使用第二个XSL或图形映射来转换您的消息。
Evgeniy。
您好,
您可以尝试使用Java的XPath API吗? 您可以根据节点级别进行拆分。
https://docs。 oracle.com/javase/6/docs/api/javax/xml/xpath/package-summary.html
您也可以尝试使用dom4j API。
谢谢
Sugata
嗨,Sugata,
谢谢。 我希望你能理解我的要求。下面的单个文件有两个带有diff结构的xml声明,并且在从Java映射中读取xml文档时,文件格式不正确。
<?xml版本=" 1.0"编码=" utf-8"?> <永久雇员<雇员> Jane
Hello Bhupal,
当您拥有XML声明时-
<?xml version =" 1.0 在源文件中两次" encoding =" utf-8"?
,这将在解析XML时引起问题。 另一点是,您的源文件具有两个不带任何根节点的结构。
考虑到以上事实,您可以执行以下操作-我假设您正在尝试创建两个多带带的文件-一个用于 所有永久雇员记录,以及另一份关于合同雇员的记录。
步骤:
1。 您需要创建一个Java Mapping来删除XML声明,并将Root节点标签添加到源XML-
上面的代码将删除XML声明并添加一个Root节点标记,该标记将在修改源XML之后生成以下XML-
2。 从上述XML创建一个Source XSD并将其分配给发送方接口(接口应为无状态)-
3。 现在为Permanet员工和Contract员工分别创建2个独立的XSD。 然后创建具有两个操作的无状态入站服务接口,并在每个操作中分配XSD-
3。 使用多重映射为源和目标创建消息映射-
按如下所示更改映射中的签名-
4。 创建操作映射-在操作映射中,包括Java映射(第一步)和消息映射(第二步)。 添加入站服务和操作如下-
5, 创建目录对象和通道后,将对其进行测试-将创建两个PI消息,从而创建两个多带带的文件-一个用于Contract,另一个用于永久雇员。
请告诉我是否可行。
谢谢
Sugata
嗨布帕尔,
我对基于根节点拆分消息有相同的要求。 但输出不符合预期。
请检查Java代码并建议更改以获取多个xml文件。
/img/questions/13071004/message-split-in-to-multiple-xml-files-when-the-re.html
谢谢
Ravi M
一周热门 更多>