我必须从 xml 文件中提取数据并将其插入到表中

Posted

技术标签:

【中文标题】我必须从 xml 文件中提取数据并将其插入到表中【英文标题】:I have to extract data from xml file and insert it into a table 【发布时间】:2016-05-30 05:53:00 【问题描述】:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:rocs.001.001.06">
<pokus>
 <RchEntry>
      <PstlAdr>
      <Ctry>IT</Ctry>
     <AdrLine>VIA SARDEGNA, 12</AdrLine>
      <AdrLine>00019TIVOLI RM</AdrLine>
      </PstlAdr>
    </RchEntry>
    <RchEntry>
     <PstlAdr>
      <Ctry>IT1</Ctry>
      <AdrLine>VIA SARDEGNA1, 12</AdrLine>
      <AdrLine>00019TIVOLI11 RM</AdrLine>
      </PstlAdr>
    </RchEntry>
    </pokus>
</Document>

这是我需要从中提取值的 xml 文件。每个 RchEntry 被视为一行。如何使用 plsql 提取 AdrLine 标签的值?

【问题讨论】:

【参考方案1】:
WITH t AS
  (SELECT column_value
  FROM TABLE(xmlsequence(extract(xmltype('<Document>
<rocs.001.001.06> 
<RchEntry>      
<PstlAdr>      
<Ctry>IT</Ctry>     
<AdrLine>VIA SARDEGNA, 12</AdrLine>      
<AdrLine>00019TIVOLI RM</AdrLine>      
</PstlAdr>    
</RchEntry>    
<RchEntry>     
<PstlAdr>      
<Ctry>IT1</Ctry>      
<AdrLine>VIA SARDEGNA1, 12</AdrLine>      
<AdrLine>00019TIVOLI11 RM</AdrLine>      
</PstlAdr>    
</RchEntry>    
</rocs.001.001.06>
</Document>'),'/Document/rocs.001.001.06/*')))
  )
SELECT t1.*
FROM t,
  xmltable('/RchEntry' passing t.column_value columns Ctry VARCHAR2(100) path '/RchEntry/PstlAdr/Ctry', AdrLine1 VARCHAR2(100) path '/RchEntry/PstlAdr/AdrLine[1]', AdrLine2 VARCHAR2(100) path '/RchEntry/PstlAdr/AdrLine[2]') t1;

【讨论】:

是否可以在不从xml文件中删除命名空间的情况下进行提取?

以上是关于我必须从 xml 文件中提取数据并将其插入到表中的主要内容,如果未能解决你的问题,请参考以下文章

使用 codeigniter 连接表并将数据提取到表中

如何从单个文件中读取不同的模式 json 对象并将其保存到表中

Firestore:如何从数组中检索数据并将其传递到表中?

如何将 PHP 数据从数据库发送回 JQuery 并插入到表中

PLSQL:将数据从 XML 解析并插入到表中

Laravel错误将数据从另一个表插入到表中