-1

PS ファイルには、次のような XML データがあります。

例:

(<?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>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>

    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
  <welcome-file>index.jsp</welcome-file>

</welcome-file-list>
</web-app>)

データを 1 行にまとめたい (間にスペースを入れない)

では、どのようにアプローチすればよいのでしょうか。(Rexx と JCL のどちらが扱いやすく維持しやすいか)

接し方も教えてください。

4

3 に答える 3

1

Rexx と JCL について言及されていますが、これらは単なる提案であり、要件ではないと推測します。

ソリューションについては、 z/OS Unix システム サービスユーティリティを参照することをお勧めします。「巨大な XML」に言及し、「巨大な」が「32K 以上」を意味する場合、PS データセットではなく、Unix ファイル システムのファイルに 1 行の XML を書き込むことに気付くでしょう。

たとえば、 awkスクリプトは、必要なことを行うことができます。

于 2013-09-13T11:53:18.800 に答える
0
tab = D2C(9)
lf = D2C(10) /* line feed */

/* Remove both tab and new line characters */
input = CHANGESTR( tab, TRANSLATE( input, tab, lf ), '' )
/* or */
input = CHANGESTR( tab, input, '' )
/* to remove only new line characters */

STRIP は、先頭および/または末尾の文字のみを削除します。

ファイルが改行だけでなく復帰改行を使用する場合は、D2C(13)D2C(10) を使用します。

コードはすべての改行文字をタブに置き換えてから、コードを解析しやすくするためにすべてのタブ文字を削除します。Google kmz/kml ファイルを処理できる kml2csv パーサーを rexx で作成しました。

OS/2 Classic REXX の実装には、CHANGESTR が含まれていません。rexx のみのソリューションは大きなファイルの場合は非常に遅くなりますが、C/C++ rexx dll はコーディングが簡単で (私はその特定の目的のために作成しました)、大きな KML ファイルを処理します。Regina REXX と新しい実装には CHANGESTR 関数が含まれていますが、空の場合でも「新しい針」のパラメーターを指定する必要があります。

于 2016-04-18T10:11:07.303 に答える
0

JCL はプログラミング言語ではなく、これまでもこれからもプログラミング言語ではないという事実を明確にする必要があります。JCL という頭字語は、Job Control Language の略です。JCL を使用してプログラムの実行を制御できますが、JCL を使用してデータを操作することはできません。それを行うように設計されたことはありません。

于 2015-11-29T11:22:36.827 に答える