Обработка XML в REXX И JCL
У меня есть данные XML в моем наборе данных PS, как показано ниже, в том же формате, что и ниже в моем 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...... так далее)
1 ответ
Это кажется странным требованием. XML-документы обычно бывают довольно "длинными", поэтому длина выходной записи должна быть не меньше, чем самый большой XML-документ, который вы будете обрабатывать. В IBM z/os, под которой, как я полагаю, вы будете работать, существует ограничение в 32 КБ для размера записи PS. Остерегайтесь этого ограничения.
В любом случае, попробуйте следующий REXX exec. Измените имена ВЫДЕЛЕННЫХ наборов данных (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, чтобы создать его с необходимыми вам атрибутами набора данных.