1

ここで問題があり、助けが必要です。次の行を見てください。

HEADING
TYPE       NAME      PBOR0    SHOP     CATREF    DETAIL    MATXT    CMPREF    BLTREF    TMPREF     PRTREF
DEFAULTS
-           -        -       =
TUBE       */Cb_N76f-RDX/T0A2013010-00:DD 0.50     TRUE  /RDX_R_AAPA1A0DD /RDX_T0A2013010-00 /RDX_VAZIO-MT   /Cb_N76f-RDX/RDX_T0A0AC0010-00:DD =0          =0          =0

また、これらの行:

HEADING
TYPE       NAME      PBOR0    STYP    SHOP     CATREF    DETAIL    MATXT    CMPREF    BLTREF    TMPREF     PRTREF
DEFAULTS
-           -        -   CT      =
ELBO       */C9B0020101-00:DD 0.50     CT  TRUE  /RDX_R_ABEB360DD /C9B0020101-00  /RDX_VAZIO-MT   /Cb_N76f-RDX/RDX_C9B002AC01-00:DD =0          =0          =0

上の図からわかるように、最初のブロックは TUBE からのもので、2 番目のブロックは ELBO からのものです。どちらもヘッダー列が異なります。この問題は、次のような xml 構成を作成して解決しました。

<?xml version="1.0" encoding="UTF-8"?>
<Components>
    <Component type="TUBE">
        <Header size="11">
            <Columns>
                <Column>
                    <Name>TYPE</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>NAME</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>PBOR0</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>SHOP</Name>
                    <Defaults>=</Defaults>
                </Column>
                <Column>
                    <Name>CATREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>DETAIL</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>MATXT</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>CMPREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>BLTREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>TMPREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>PRTREF</Name>
                    <Defaults></Defaults>
                </Column>
            </Columns>
        </Header>
    </Component>
    <Component type="ELBO">
        <Header size="12">
            <Columns>
                <Column>
                    <Name>TYPE</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>NAME</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>PBOR0</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>STYP</Name>
                    <Defaults>CT</Defaults>
                </Column>
                <Column>
                    <Name>SHOP</Name>
                    <Defaults>=</Defaults>
                </Column>
                <Column>
                    <Name>CATREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>DETAIL</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>MATXT</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>CMPREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>BLTREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>TMPREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>PRTREF</Name>
                    <Defaults></Defaults>
                </Column>
            </Columns>
        </Header>
    </Component>
    <Component type="GASKET">
        <Header size="12">
            <Columns>
                <Column>
                    <Name>TYPE</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>NAME</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>PBOR0</Name>
                    <Defaults>-</Defaults>
                </Column>
                <Column>
                    <Name>STYP</Name>
                    <Defaults>RF</Defaults>
                </Column>
                <Column>
                    <Name>SHOP</Name>
                    <Defaults>=</Defaults>
                </Column>
                <Column>
                    <Name>CATREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>DETAIL</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>MATXT</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>CMPREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>BLTREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>TMPREF</Name>
                    <Defaults></Defaults>
                </Column>
                <Column>
                    <Name>PRTREF</Name>
                    <Defaults></Defaults>
                </Column>
            </Columns>
        </Header>
    </Component>
</Components>

問題は次のとおりです。たとえば、列に値を書き込むにはさまざまなルールがあります。たとえば、名前を書き込むには特定のルールに従う必要があり、STYP を別のものに記述するには、これらのルールを記述する簡単で簡単な方法はありますか? XML、それらを読み取って解釈し、出力のルールに従って正しい値を書き込みますか?

よろしくお願いします!

4

2 に答える 2

1

チェックアウトしてみてください:

  • 正規表現
  • XSD スキーマを使用した検証 (そうであるとは思えません)

おそらく、あなたが期待するほどクールな答えではないでしょうが、とにかく

于 2013-10-11T14:35:40.270 に答える