文件中这样的格式数据如何快速读取拆分入库

jms918 2021-04-26 03:50:51
C#窗体

<DATA>
<AA>A,18082,18089,8,0,1,0,AAA,1A, ,20210402,1,1,20334620</AA>
<BB>16,费用,17069690,费用1,9140,费用2,210380,费用3,7290,费用4,1736790</BB>
<CC>516000</CC>
</DATA>

文件中很多这样格式的数据,用什么方法速度最快。谢谢!
...全文
1164 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2021-04-30
  • 打赏
  • 举报
回复
你是如何产生那些数据的? 逆运算即可
shawn_yang 2021-04-30
  • 打赏
  • 举报
回复
xml 或者正则都可以
KnightWelling 2021-04-30
  • 打赏
  • 举报
回复
直接序列化吧,别走那些野路子
Dear200892 2021-04-30
  • 打赏
  • 举报
回复

DECLARE @xml xml
SET @xml=cast(replace(@xml ,'encoding="UTF-8"','') AS xml)

SELECT IDENTITY(int,1,1) AS RowID,
t.Evt.value('AA[1]','varchar(200)') AS AA,
t.Evt.value('BB[1]','varchar(200)') AS BB,
t.Evt.value('CC[1]','varchar(200)') AS CC
INTO #tmp
FROM @xml.nodes('/DATA') AS t(Evt)
luj_1768 2021-04-30
  • 打赏
  • 举报
回复
直接使用数据库导入工具,把数据导入数据库系统,然后就可以使用数据库支持的任何方法操作。
jms918 2021-04-29
  • 打赏
  • 举报
回复
提示还是跟节点重复啊
Dictator榕湖 2021-04-29
  • 打赏
  • 举报
回复
搜搜 sql xml的用法应该差不多
jms918 2021-04-28
  • 打赏
  • 举报
回复
htmlagilitypack
wanghui0380 2021-04-28
  • 打赏
  • 举报
回复
另一个java的 https://my.oschina.net/u/1861837/blog/308632
wanghui0380 2021-04-28
  • 打赏
  • 举报
回复
看看博客园的java在干啥 https://www.cnblogs.com/yanxiaoge/p/10765674.html
wanghui0380 2021-04-28
  • 打赏
  • 举报
回复
这样把,我来给个稍微新的东西----------------免得这里总是net不行,net垃圾,net啥都木有。(到不是木有,只是光看博客园的net压根不知道早就有) json,xml这种文件型的半结构数据,处理方式其实很多。linq2xml,xmldocument,----------无数种。 但是早期都面临一个问题,就是文档必须读取完毕,这个都非常讨厌 所以现在json,xml都发展出了流式处理手段。xml的流式处理手段叫SAX,你知道他了随便去nuget搜一下,立刻一大堆(net真没有么?) 比如这个 https://github.com/rasmusjp/sax.net 他每读到一个节点就会直接推给你,至于使用方式你可以直接参照java sax的资料,他的使用方式更java的一样 嘿嘿,没办法,博客园的net眼睛天天就盯着“string”,“血案”压根不会瞧别的,所以资料你只能跟java求了(很奇怪把,博客园的java反而天天就不盯着string,血案,你说奇怪不奇怪!!!!!)
飞天凤凰601 2021-04-28
  • 打赏
  • 举报
回复
OBX|1|NM|147842^MDC_ECG_HEART_RATE^MDC|1.7.4.147842|81|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000||||00A037009B0006A0^^00A037009B0006A0^EUI-64 OBX|2|NM|148066^MDC_ECG_V_P_C_RATE^MDC|1.7.2.148066|0|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|3|NM|108^MNDRY_ECG_PAUSE_RATE^99MNDRY|1.7.2.108|0|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|4|NM|352^MNDRY_ECG_VPB_RATE^99MNDRY|1.7.2.352|0|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|5|NM|298^MNDRY_ECG_COUPLETS_RATE^99MNDRY|1.7.2.298|0|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|6|NM|299^MNDRY_ECG_MISSED_BEATS_RATE^99MNDRY|1.7.2.299|0|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|7|NM|302^MNDRY_ECG_P_V_C_RonT_RATE^99MNDRY|1.7.2.302|0|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|8|NM|151578^MDC_TTHOR_RESP_RATE^MDC|1.7.1.151578|8|264928^MDC_DIM_RESP_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|9|NM|150456^MDC_PULS_OXIM_SAT_O2^MDC|1.3.1.150456|100|262688^MDC_DIM_PERCENT^MDC|||||R|||20191028110152+0000 OBX|10|NM|149530^MDC_PULS_OXIM_PULS_RATE^MDC|1.3.1.149530|81|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|11|NM|150488^MDC_BLD_PERF_INDEX^MDC|1.3.1.150488|5.51|262688^MDC_DIM_PERCENT^MDC|||||R|||20191028110152+0000 OBX|12|NM|149530^MDC_PULS_OXIM_PULS_RATE^MDC|1.3.1.149530|81|264864^MDC_DIM_BEAT_PER_MIN^MDC|||||R|||20191028110152+0000 OBX|13|NM|151578^MDC_TTHOR_RESP_RATE^MDC|1.7.1.151578|8|264928^MDC_DIM_RESP_PER_MIN^MDC|||||R|||20191028110152+0000 ---------------------------------- 兄弟,我这样的数据,都得入库。 没办法,你只能自己按格式处理
YBcsdn1996 2021-04-28
  • 打赏
  • 举报
回复
自己写个算法啊 substring (nvarchar, indexof(<AA>),nvarchar.length-indexof(</AA>)) 以此类推
jms918 2021-04-28
  • 打赏
  • 举报
回复
哦,我表述的有点不清楚了 <DATA> <AA>A,18082,18089,8,0,1,0,AAA,1A, ,20210402,1,1,20334620</AA> <BB>16,费用,17069690,费用1,9140,费用2,210380,费用3,7290,费用4,1736790</BB> <CC>516000</CC> </DATA> 文件中好多这样格式的数据,我要把<AA><BB><CC>中的内容从文件中取出来,赋值到变量即可。文件条数有上百万条
jms918 2021-04-28
  • 打赏
  • 举报
回复
文件中汉字怎么报错,改成英文就可以读了???
jms918 2021-04-28
  • 打赏
  • 举报
回复
读取文件中的数据时,提示有多个根元素啊
wanghui0380 2021-04-28
  • 打赏
  • 举报
回复
引用 4 楼 jms918 的回复:
快来人啊,有什么最佳办法
没人知道你到底想干嘛,所以他们只能回复,建立对象,反序列,load成dataset
jms918 2021-04-28
  • 打赏
  • 举报
回复
我试一下,没有弄过这个
爱喝茶的助手 2021-04-28
  • 打赏
  • 举报
回复

string strarr=@"<DATA>
<AA>A,18082,18089,8,0,1,0,AAA,1A, ,20210402,1,1,20334620</AA>
<BB>16,费用,17069690,费用1,9140,费用2,210380,费用3,7290,费用4,1736790</BB>
<CC>516000</CC>
</DATA>";
    DataSet dsData = new DataSet();
    dsData.ReadXml(new XmlTextReader(new StringReader(strarr)));
jms918 2021-04-28
  • 打赏
  • 举报
回复
快来人啊,有什么最佳办法
加载更多回复(2)

111,088

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧