ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 437|回复: 7

[PL/SQL] 求助,这种格式的字段怎么解析呢

[复制链接]
求职 : 数据分析/ETL
论坛徽章:
6
鲜花蛋
日期:2014-08-09 15:15:33itpub13周年纪念徽章
日期:2014-10-05 10:01:16优秀写手
日期:2014-03-12 06:00:12暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-05 13:22:59
发表于 2017-4-21 11:39 | 显示全部楼层 |阅读模式
本帖最后由 stelfzhangxian 于 2017-4-21 16:53 编辑

<div style="width:15.92cm;margin-left:1.54cm">
<div id="main" style="font-family:宋体;font-size:10.5pt;line-height:1.7">
<p><span style="bgcolor:FFFFFF;font-weight:bold">首次病程记录 2016年08月21日 10:29</span></p>
<table cellpadding="0" border="1" rules="all" style="width:100%;border:1pt #000000 solid #000000;border-collapse:collapse;empty-cells:show;table-layout:fixed;border-style:solid">
<tr><td style="border:1pt solid #000000" colspan="2" Width="100.00%"><p style="line-height: 1.7;"><span>一、</span><span style="bgcolor:FFFFFF">病例特点</span><span>:</span></p><p style="text-align:left;line-height: 1.7;"><span>1.患者一般情况:患者 </span><span style="bgcolor:FFFFFF">stelftest</span><span>, </span><span style="bgcolor:FFFFFF">女</span><span>, </span><span style="bgcolor:FFFFFF">39岁</span><span>,因“转移性右下腹痛1天余”入院。</span></p><p style="text-align:left;line-height: 1.7;"><span>2.主要临床表现:</span><span>test111</span></p><p style="line-height: 1.7;"><span>3.入院查体:</span><span>test222</span></p><p style="line-height: 1.7;"><span>5.辅助检查</span><span>:test333</span><span> </span></p></td></tr>
<tr><td style="border:1pt solid #000000" colspan="2" Width="100.00%"><p style="line-height: 1.7;"><span>二、拟诊讨论: </span></p></td></tr>
<tr><td style="border:1pt solid #000000" Width="14.49%"><p style="line-height: 1.7;"><span>1、初步诊断:</span></p></td><td style="border:1pt solid #000000" Width="85.51%"><p style="line-height: 1.7;"><span>腹痛待查:</span><span style="bgcolor:FFFFFF">xxxxxx</span><span>?</span></p></td></tr>
<tr><td style="border:1pt solid #000000" Width="14.49%"><p style="line-height: 1.7;"><span>2、诊断依据:</span></p></td><td style="border:1pt solid #000000" Width="85.51%"><p style="text-align:left;line-height: 1.7;"><span>test4444</span></p></td></tr>
<tr><td style="border:1pt solid #000000" Width="14.49%"><p style="line-height: 1.7;"><span>3、鉴别诊断:</span></p></td><td style="border:1pt solid #000000" Width="85.51%"><p style="text-align:left;line-height: 1.7;"><span>test555</span></p><p style="text-align:left;line-height: 1.7;"><span>test666</span></p></td></tr>
<tr><td style="border:1pt solid #000000" colspan="2" Width="100.00%"><p style="text-align:left;line-height: 1.7;"><span>三、诊疗计划:</span><span>1、test777</span></p><p style="text-align:left;line-height: 1.7;"><span>2、test888</span></p></td></tr>
</table>
<p><span></span><span style="bgcolor:FFFFFF">上级医师:</span><span></span><span style="bgcolor:FFFFFF">医生签名:</span><span>付杰</span></p>
</div>
</div>

有一个blob字段,里面存的是文本格式,类似于html。现在想结构化,把内容存到另外的字段里面,我现在不知道怎么解析这个玩意了。
想得到的结果大概是这个样子:
一般情况:xx
临床表现:xx
入院查体:xx
辅助检查:xx
初步诊断:xx
诊断依据:xx
鉴别诊断:xx
诊疗计划:xx

主要是思路不清晰,感觉节点有点多,不知道从哪里下手,大神们帮忙下。

而且我这个字段本身是 blob类型,我要怎么转换成xmltype呢?








论坛徽章:
17
迷宫蛋
日期:2011-11-25 14:00:47秀才
日期:2017-03-02 10:30:14托尼托尼·乔巴
日期:2017-01-25 09:38:19暖羊羊
日期:2015-06-15 10:03:48天枰座
日期:2015-07-18 17:23:542015年新春福章
日期:2015-03-06 11:57:31喜羊羊
日期:2015-03-04 14:49:39蛋疼蛋
日期:2013-06-21 13:21:23蜘蛛蛋
日期:2013-01-26 23:37:33奥运会纪念徽章:现代五项
日期:2012-09-14 14:56:32
发表于 2017-4-21 13:40 | 显示全部楼层
一个<tr>...</tr>一行,里面截取<span>...</span>

使用道具 举报

回复
求职 : 数据分析/ETL
论坛徽章:
6
鲜花蛋
日期:2014-08-09 15:15:33itpub13周年纪念徽章
日期:2014-10-05 10:01:16优秀写手
日期:2014-03-12 06:00:12暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-05 13:22:59
 楼主| 发表于 2017-4-21 15:28 | 显示全部楼层
dhhb 发表于 2017-4-21 13:40
一个...一行,里面截取...

截取的span怎么拼接起来呢?span[1][2][3][4]等等

使用道具 举报

回复
求职 : 数据分析/ETL
论坛徽章:
6
鲜花蛋
日期:2014-08-09 15:15:33itpub13周年纪念徽章
日期:2014-10-05 10:01:16优秀写手
日期:2014-03-12 06:00:12暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-05 13:22:59
 楼主| 发表于 2017-4-21 17:00 | 显示全部楼层
在线等,之前有前台开发说帮忙解析这玩意,但是一直没人做,我还是想自己搞定算了。

使用道具 举报

回复
求职 : 数据分析/ETL
论坛徽章:
6
鲜花蛋
日期:2014-08-09 15:15:33itpub13周年纪念徽章
日期:2014-10-05 10:01:16优秀写手
日期:2014-03-12 06:00:12暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-05 13:22:59
 楼主| 发表于 2017-4-21 17:14 | 显示全部楼层
  1. SELECT ROWNUM rn,
  2.        str1 || str2 || str3 || str4 || str5 || str6 || str7 || str8 || str9 ||
  3.        str10
  4.   from (SELECT XMLTYPE('<div style="width:15.92cm;margin-left:1.54cm">
  5. <div id="main" style="font-family:宋体;font-size:10.5pt;line-height:1.7">
  6. <p><span style="bgcolor:FFFFFF;font-weight:bold">首次病程记录 2016年08月21日 10:29</span></p>
  7. <table cellpadding="0" border="1" rules="all" style="width:100%;border:1pt #000000 solid #000000;border-collapse:collapse;empty-cells:show;table-layout:fixed;border-style:solid">
  8. <tr>
  9. <td style="border:1pt solid #000000" colspan="2" Width="100.00%">
  10. <p style="line-height: 1.7;"><span>一、</span><span style="bgcolor:FFFFFF">病例特点</span><span>:</span></p>
  11. <p style="text-align:left;line-height: 1.7;"><span>1.患者一般情况:患者 </span><span style="bgcolor:FFFFFF">stelftest</span><span>, </span><span style="bgcolor:FFFFFF">女</span><span>, </span><span style="bgcolor:FFFFFF">39岁</span><span>,因“转移性右下腹痛1天余”入院。</span></p>
  12. <p style="text-align:left;line-height: 1.7;"><span>2.主要临床表现:</span><span>test111</span></p><p style="line-height: 1.7;"><span>3.入院查体:</span><span>test222</span></p>
  13. <p style="line-height: 1.7;"><span>5.辅助检查</span><span>:test333</span></p>
  14. </td>
  15. </tr>
  16. <tr>
  17. <td style="border:1pt solid #000000" colspan="2" Width="100.00%"><p style="line-height: 1.7;"><span>二、拟诊讨论:</span></p></td>
  18. </tr>
  19. <tr>
  20. <td style="border:1pt solid #000000" Width="14.49%"><p style="line-height: 1.7;"><span>1、初步诊断:</span></p></td>
  21. <td style="border:1pt solid #000000" Width="85.51%"><p style="line-height: 1.7;"><span>腹痛待查:</span><span style="bgcolor:FFFFFF">xxxxxx</span><span>?</span></p></td>
  22. </tr>
  23. <tr>
  24. <td style="border:1pt solid #000000" Width="14.49%"><p style="line-height: 1.7;"><span>2、诊断依据:</span></p></td>
  25. <td style="border:1pt solid #000000" Width="85.51%"><p style="text-align:left;line-height: 1.7;"><span>test4444</span></p></td>
  26. </tr>
  27. <tr>
  28. <td style="border:1pt solid #000000" Width="14.49%"><p style="line-height: 1.7;"><span>3、鉴别诊断:</span></p></td>
  29. <td style="border:1pt solid #000000" Width="85.51%"><p style="text-align:left;line-height: 1.7;"><span>test555</span></p><p style="text-align:left;line-height: 1.7;"><span>test666</span></p></td>
  30. </tr>
  31. <tr>
  32. <td style="border:1pt solid #000000" colspan="2" Width="100.00%"><p style="text-align:left;line-height: 1.7;"><span>三、诊疗计划:</span><span>1、test777</span></p><p style="text-align:left;line-height: 1.7;"><span>2、test888</span></p></td>
  33. </tr>
  34. </table>
  35. <p><span></span><span style="bgcolor:FFFFFF">上级医师:</span><span></span><span style="bgcolor:FFFFFF">医生签名:</span><span>付杰</span></p>
  36. </div>
  37. </div>') htmlstr
  38.            FROM dual) t,
  39.        XMLTable('div/div/table/tr/td/p' passing t.htmlstr COLUMNS str1
  40.                 VARCHAR2(1000) path 'span[1]',
  41.                 str2 VARCHAR2(1000) path 'span[2]',
  42.                 str3 VARCHAR2(1000) path 'span[3]',
  43.                 str4 VARCHAR2(1000) path 'span[4]',
  44.                 str5 VARCHAR2(1000) path 'span[5]',
  45.                 str6 VARCHAR2(1000) path 'span[6]',
  46.                 str7 VARCHAR2(1000) path 'span[7]',
  47.                 str8 VARCHAR2(1000) path 'span[8]',
  48.                 str9 VARCHAR2(1000) path 'span[9]',
  49.                 str10 VARCHAR2(1000) path 'span[10]')
复制代码


参考论坛的代码写了一个这样子的,勉强可以拿到里面的内容,可是我这个字段原来是 blob,不能直接当成xmltype来使用,有什么办法可以转换呢?


使用道具 举报

回复
论坛徽章:
454
秀才
日期:2015-08-18 09:49:27秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01状元
日期:2015-09-09 10:34:21榜眼
日期:2015-09-09 10:34:21秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01秀才
日期:2015-09-09 10:33:01
发表于 2017-4-22 03:19 | 显示全部楼层
先用DBMS_LOB.CONVERTTOCLOB把BLOB转换成CLOB再试试。

使用道具 举报

回复
求职 : 数据分析/ETL
论坛徽章:
6
鲜花蛋
日期:2014-08-09 15:15:33itpub13周年纪念徽章
日期:2014-10-05 10:01:16优秀写手
日期:2014-03-12 06:00:12暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-05 13:22:59
 楼主| 发表于 2017-4-22 11:51 | 显示全部楼层
newkid 发表于 2017-4-22 03:19
先用DBMS_LOB.CONVERTTOCLOB把BLOB转换成CLOB再试试。

谢谢newkid,转成clob之后就可以使用xmltype处理了。但是又有难题了,同一个xml有不同的路径要怎么办呢?就是说元素对应的路径有差异 1、div/div/tr/td    2、div/div/table/tr/td    怎么样同时显示这两个路径下所有的元素呢?

使用道具 举报

回复
招聘 : 系统分析师
论坛徽章:
477
本田
日期:2014-01-05 16:51:44技术图书徽章
日期:2014-04-21 10:26:402014年世界杯参赛球队: 伊朗
日期:2014-05-23 10:41:312014年世界杯参赛球队: 比利时
日期:2014-06-17 12:09:43itpub13周年纪念徽章
日期:2014-09-28 10:55:55itpub13周年纪念徽章
日期:2014-09-29 01:14:14itpub13周年纪念徽章
日期:2014-10-08 15:15:25itpub13周年纪念徽章
日期:2014-10-08 15:15:25马上有对象
日期:2014-10-12 11:58:40马上有车
日期:2014-11-16 17:11:29
发表于 2017-4-25 17:26 | 显示全部楼层
你涉及到解析html了,可使用正则表达式

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表