apex_data_parser.parse 的 p_row_selector 值应该是多少?

问题描述 投票:0回答:0

我正在尝试解析 APEX18 上的 XML 文件

XML结构是这样的:

<Document>
  <group_1>
    <group_1_1>
      <MsgId>x</MsgId>
      <CreDtTm>2023-05-01T16:20:06.770+00:00</CreDtTm>
      <MsgPgntn>
        <PgNb>1</PgNb>
        <LastPgInd>richtig</LastPgInd>
      </MsgPgntn>
    </group_1_1>
    <group_1_2>
      <Id>36</Id>
      <Acct>
        <Id>
          <Othr>
            <Id>xxx</Id>
          </Othr>
        </Id>
        <Ownr>
          <Id>
            <OrgId>
              <AnyBIC>yyy</AnyBIC>
            </OrgId>
          </Id>
        </Ownr>
      </Acct>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>aaa</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">0.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2023-01-01</Dt>
        </Dt>
      </Bal>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>bbb</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">0.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2023-01-02</Dt>
        </Dt>
      </Bal>
    </group_1_2>
  </group_1>
</Document>

我通过 :P1_NEW(文件浏览器)项上传此文件,然后尝试使用以下查询选择它

select line_number, col001, col002, col003, col004, col005
  from apex_application_temp_files x, 
       table(apex_data_parser.parse(
                  p_content                     => x.blob_content,
                  p_add_headers_row             => 'Y',
                  p_row_selector                => '/Document/group_1/group_1_2',                  
                  p_store_profile_to_collection => 'FILE_PARSER_COLLECTION',
                  p_file_name                   => x.filename)) y
 where x.name = :P1_NEW

这就是我得到的结果

然而,我希望看到他们父母中的所有子标签作为单独的列。徒劳吗?如果可以,我如何设置我的行选择器以获取(对于此示例)Id、Acct、Ownr、Bal... 一次在不同列中的值?

xml-parsing oracle-apex
© www.soinside.com 2019 - 2024. All rights reserved.