有一个XML串
<isOk>0</isOk><Id>10000020</Id><time>2003-11-10 04:58:31</time>
如何解析它取得节点<Id>的值?谢谢!

解决方案 »

  1.   

    多看看delphi xia的source下的源代码。。什么问题都会解决大额啊。
      

  2.   

    你首先可以用ADO来试一下,adoquery的savetofile
    和loadfromfile从xml中load到一adoquery中,然后在判断处理
    adoquery.loadfromfile('c:\1.xml')  
    其他的还用我说吗?
    很简单了吧?
      

  3.   

    uses msxml;
    var xmldoc:IXMLDOMDocument;
    begin
     xmldoc:=CreateOleObject('MSXML.DOMDocument') as IXMLDOMDocument;
     xmldoc.loadxml('<isOk>0</isOk><Id>10000020</Id><time>2003-11-10 04:58:31</time>
    ');
     ShowMessage(xmldoc.selectSingleNode('/id').text);
     xmldoc:=nil;
    end;
      

  4.   

    TO:  Eastunfail(浴血雏龙)==(恶鱼杀手) 程序运行到 ShowMessage(xmldoc.selectSingleNode('/id').text);就报越界的错误了
      

  5.   

    如果你只是想取出ID的值那是很简单的一件事情,但是如果你要想做成一个通用的函数的话,也就是说无论什么结构的XML文档只要把结点放进去,然后,就找出这个结点的值,这样的话可能会麻烦一点。如果那位知道的话,在下多谢辞教
      

  6.   

    if xmldoc.selectSingleNode('//id')<>nil then
      ShowMessage(xmldoc.selectSingleNode('//id').text);
      

  7.   

    不用知道路径,'//id'是绝对路径,只要有就可以搜索到试试把id换成大写的
      

  8.   

    uses msxml;
    var xmldoc:IXMLDOMDocument;
    begin
     xmldoc:=CreateOleObject('MSXML.DOMDocument') as IXMLDOMDocument;
     xmldoc.loadxml('<isOk>0</isOk><Id>10000020</Id><time>2003-11-10 04:58:31</time>
    ');
     if xmldoc.selectSingleNode('//Id')<>nil then
      ShowMessage(xmldoc.selectSingleNode('//Id').text);
     xmldoc:=nil;
    end;
    楼上的朋友你是说这样写吗?
    如果这样写的话还是不行。
      

  9.   

    考,知道原因了:xml字符串有问题,没有根节点,就是最外层的节点这样就可以了var xmldoc:IXMLDOMDocument;
    begin
     xmldoc:=CreateOleObject('MSXML.DOMDocument') as IXMLDOMDocument;
     xmldoc.loadxml('<item><isOk>0</isOk><Id>10000020</Id><time>2003-11-10 04:58:31</time></item>');
     if xmldoc.selectSingleNode('//Id')<>nil then
      ShowMessage(xmldoc.selectSingleNode('//Id').text);
     xmldoc:=nil;
      

  10.   

    对了再问一下,在WEBSERVICE中提示’文档的顶层无效‘是由于什么原因引起的呢?