我的PS数据集中有XML数据,如下所示,它与我PS中的格式相同,下面是示例:
(**<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>onlinerecharge</display-name>
<filter>
<filter-name>struts2</filter-name>`enter code here`
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>**)
我想要的是我希望整个XML在一行中没有任何中断,我只需要在大型机上执行该操作。 我们有什么办法在REXX或JCL中做到这一点,我希望我的输出就像在PS中一样:
( http://www.w3.org ......等等)
答案 0 :(得分:1)
这似乎是一个奇怪的要求。 XML文档往往相当“长”,因此输出记录长度至少需要与您要处理的最大XML文档一样长。在我认为你将运行的IBM z / os下,PS记录大小有32K的限制。请注意这个限制。
无论如何,请尝试以下REXX执行。更改ALLOCATED数据集名称(HLQ.XML.IN
和HLQ.XML.OUT
)以满足您的需要,它将连接输入数据集中的所有记录
将其写入单个记录并将其写入输出数据集。
/* REXX */
'ALLOCATE DA(''HLQ.XML.IN'') F(XMLIN) SHR'
'ALLOCATE DA(''HLQ.XML.OUT'') F(XMLOUT) OLD'
'EXECIO * DISKR XMLIN(FINIS STEM REC.'
XOUT = ''
DO I = 1 TO REC.0
XOUT = XOUT || STRIP(REC.I)
END
QUEUE XOUT
'EXECIO * DISKW XMLOUT(FINIS'
'FREE DDNAME(XMLIN)'
'FREE DDNAME(XMLOUT)'
RETURN
注意:输出数据集需要在运行此exec之前创建,否则只需更改ALLOCATE语句,使用您需要的任何数据集属性创建它。