字符串的内容如下:<?xml version="1.0" encoding="GB2312"?>
<Root><我的客户反馈信息><号码>13716187476</号码><业务号码>837228</业务号码><内容>请问传真件怎么会发不过来?</内容><位置>5412275</位置><时间>06090110124000</时间></我的客户反馈信息></Root>字符串是从某网上信息平台上收到的。我现在想取得其中的号码、内容和位置里面的的信息,我用的方法是,先把上面这个字符串赋给String类型的s,然后用以下方法来取值:MidStr(s,pos('<号码>',s)+4,11);可取到的值总是会差很远。那位高人指教一下。(本人从未学过Delphi,请回复的各位大仙留下详细的步骤和代码,多谢)
<Root><我的客户反馈信息><号码>13716187476</号码><业务号码>837228</业务号码><内容>请问传真件怎么会发不过来?</内容><位置>5412275</位置><时间>06090110124000</时间></我的客户反馈信息></Root>字符串是从某网上信息平台上收到的。我现在想取得其中的号码、内容和位置里面的的信息,我用的方法是,先把上面这个字符串赋给String类型的s,然后用以下方法来取值:MidStr(s,pos('<号码>',s)+4,11);可取到的值总是会差很远。那位高人指教一下。(本人从未学过Delphi,请回复的各位大仙留下详细的步骤和代码,多谢)
不过用pos()+copy()就可以搞定了
begin
XMLDocument1.LoadFromFile('c:\test.xml');
RootNode:= XMLDocument1.DocumentElement.ChildNodes.FindNode('我的客户反馈信息');
ShowMessage(RootNode.ChildNodes.FindNode('号码').Text);
ShowMessage(RootNode.ChildNodes.FindNode('业务号码').Text);
//如此类推...
end;
var RootNode:IXMLNode;
begin
XMLDocument1.XML.Text :=s; //s就是上文所说的String类型的XML
XMLDocument1.Active:=true;
RootNode:= XMLDocument1.DocumentElement.ChildNodes.FindNode('我的客户反馈信息');
ShowMessage(RootNode.ChildNodes.FindNode('号码').Text);
...类推
end;主要的解决思路是参考了liangqingzhi大大的方法,在此表示感谢,并献上95分。
另外也对andyzhou1101大大的热情和快速回应表示感谢。献上5分。
就此结贴。