导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2017/9/5 22:07:55
标题:
加入我的收藏
楼主:
字符串如下: <?xml version="1.0" encoding="UTF-8"?> <error></error> <page rowcount='1' colcount='20'> <row> <d>23122613000163</d> <d>测试单位</d> <d>1203651676</d> <d>232332197405060612</d> <d>张三</d> <d>1</d> <d>1974-05-06</d> <d>11</d> <d>在职</d> <d>62665679X</d> <d>0.0</d> <d>0.0</d> <d>0.0</d> <d>0.0</d> <d>0.0</d> <d>1312.12</d> <d>498.57</d> <d></d> <d></d> <d></d> </row> </page> 问题一、如何能取出<page rowcount='1' colcount='20'> 中的rowcount=1中的1,colcount中的20 问题二、如何能循环的把<row></row>中所有<d></d>中的值都一个个循环的取出来 谢谢高手指导
----------------------------------------------
-敢于学习,谦虚学习,鼓励批评!!
作者:
2017/9/5 22:25:11
1楼:
基本功
----------------------------------------------
QQ群:325010556 欢迎加入。
作者:
2017/9/6 7:58:06
2楼:
拜托,这不是 XML 嘛?还是我眼花了?
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
2017/9/6 8:46:59
3楼:
pos,copy都用不熟,还是不要搞编程了..
----------------------------------------------
-
作者:
2017/9/6 8:54:32
4楼:
xml 基本解析.... 回炉重造吧
----------------------------------------------
-
作者:
2017/9/6 9:26:24
5楼:
不是用字符串截取的函数来处理,而是用XML文件来处理比较合适。 有诸多组件可帮助你完成这个任务。 一个是微软系统自带的MSXML组件,这里有个参考回答范例:https://stackoverflow.com/questions/9282370/xml-parsing-txmldocument 另外就是诸多三方控件了,譬如superObject,OmniXML等等。 建议:善用Google搜索以及Github和stackoverflow等网站来解决问题。
----------------------------------------------
喜欢Delphi,关注Delphi,愿和广大爱好者交朋友。
作者:
vkow (vkow)
★☆☆☆☆
-
普通会员
2017/9/6 9:38:50
6楼:
告诉你一个小秘密: 如果项目经理看到你用字符串截取的方式来处理上面的文本。 我估计结果只有一个,你要被开除了。 真的,我没吓唬你。
----------------------------------------------
-
作者:
2017/9/6 10:51:28
7楼:
uses XMLDoc, XMLIntf, 程序: var xdXml : IXMLDocument; xnParas, Npara: IXMLNode; ChindList : IXMLNodeList; BinInfo : string; DataTypeS,S1,S2:string; begin BinInfo:='abc.xml'; if FileExists(BinInfo)=true then begin xdXml := TXMLDocument.Create(nil); xdXml.LoadFromFile(BinInfo); xdXml.Active := true; xdXml.Encoding := 'GB2312'; xnParas := xdXml.ChildNodes.Nodes['Datas'].ChildNodes.Nodes['Vitae']; DataTypeS:=''; s1:=''; s2:=''; if xnParas.HasAttribute('DataType') then begin DataTypeS:= xnParas.Attributes['DataType']; end; if xnParas.HasAttribute('Pilot') then begin s1:= xnParas.Attributes['Pilot']; end; if xnParas.HasAttribute('SubPilot') then begin s2:= xnParas.Attributes['SubPilot']; end; BinInfo:='"FlyDate":"'+xnParas.Attributes['Date']+'",'+ '"StartTime":"'+xnParas.Attributes['StartTime']; end else begin BinInfo:=''; end; end; 慢慢自己测试吧,应该就会了。但愿有用。 Delphi移动开发跨平台界面最新源码: 推广优惠:https://item.taobao.com/item.htm?id=522707335329  ; 详情:http://blog.163.com/you888@188/blog/static/6723961920159271412582/
----------------------------------------------
Delphi 的移动程序开发,是您不可再错失的机遇:http://blog.163.com/you888@188/blog/static/6723961920169319529515/
作者:
2017/9/6 10:57:56
8楼:
如果要最快速度,最大兼容性和不受牵制,就用Pos和copy
----------------------------------------------
声明:本人不在论坛询问任何编程问题,请不要将我的帖子当成问题来回答。炒股一天,编程三年,不浪费时间了。 经常在外面,没空,不要找我..
作者:
2017/9/6 11:26:01
9楼:
有三种方法:pos + copy, xml类, 正则
----------------------------------------------
-
作者:
2017/9/6 15:08:19
10楼:
现成的XML解析类、库有不少,自己找找看
----------------------------------------------
-
作者:
2017/9/6 17:22:21
11楼:
这是基本读取xml,记得有本delphi书,专门折腾这个。 《Delphi XML权威指南》 或者,直接去万一博客看看。
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
作者:
2017/9/6 18:23:37
12楼:
这是非标准的xml
----------------------------------------------
-敢于学习,谦虚学习,鼓励批评!!
作者:
2017/9/6 18:41:43
13楼:
好吧,告诉你,用正则是最好的办法!
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
作者:
2017/9/6 19:50:16
14楼:
对,正则表达式去匹配
----------------------------------------------
-
作者:
hs_kill (lzl_17948876)
★☆☆☆☆
-
普通会员
2017/9/10 13:48:31
15楼:
非标准XML? 你是说根节点不唯一么 用QXML是可以解析的
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
作者:
2017/9/11 19:31:46
16楼:
XsuperObject也可以
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。