- <LineItem>
  <LineItemNumber>000010</LineItemNumber> 
  <Material>839676</Material> 
  <MaterialDescription>MOTHER BD BOXD845BGL ATX PENTIUM (R) 4 }</MaterialDescription> 
  <CustomerPartNumber>12759</CustomerPartNumber> 
  <PlanShipDate>20020318</PlanShipDate> 
  <LineItemQuantity>225.000</LineItemQuantity> 
+ <PickingRequest>
  <BatchIdentifier>CN12113FOX</BatchIdentifier> 
  <Quantity>160.000</Quantity> 
  </PickingRequest>
+ <PickingRequest>
  <BatchIdentifier>CN12114FOX</BatchIdentifier> 
  <Quantity>65.000</Quantity> 
  </PickingRequest>
  </LineItem>下有兩個</PickingRequest> 節點﹐怎么獲得重復的個數

解决方案 »

  1.   

    - <LineItem>
      <LineItemNumber>000010</LineItemNumber> 
      <Material>839676</Material> 
      <MaterialDescription>MOTHER BD BOXD845BGL ATX PENTIUM (R) 4 }</MaterialDescription> 
      <CustomerPartNumber>12759</CustomerPartNumber> 
      <PlanShipDate>20020318</PlanShipDate> 
      <LineItemQuantity>225.000</LineItemQuantity> 
    + <PickingRequest>
    + <PickingRequest>  
      </LineItem>
    下有兩個<PickingRequest>  節點﹐怎么獲得這個重復節點的個數
      

  2.   

    在窗口中加入一个XMLDocument1控件,下面的程序是我写的一个范例:
    在按扭事件中写代码:
    var
      i: integer;
      ChildCount: integer;//子节点个数
      xn: IXMLNode;//XML文档的树结点
    begin
      XMLDocument1.LoadFromFile('test.xml');
      XMLDocument1.Active := True;
      xn := XMLDocument1.DocumentElement.ChildNodes[0];//xn表示当前节点为根元素的第一个节点
      xnOrder := xn.ChildNodes['items'];//items为xn的节点,节点名为items
      ChildCount := xnOrder.ChildNodes.Count;//取items节点的子节点个数
      if ChildCount > 0 then 
      begin
        Application.MessageBox('有子节点','提示',MB_ICONINFORMATION + MB_OK);
      end;
    获取其它节点的子节点个数与此类似...
    -----------------------------------------------------------
    针对你的问题,如果<PickingRequest>是跟节点的第N个节点,那程序应该这样:
    xn := XMLDocument1.DocumentElement.ChildNodes[N-1];
    //也就是你上面的 第一个<PickingRequest>节点的子节点个数
     ChildCount := xn.ChildNodes.Count;
    同理,第二个<PickingRequest>节点的子节点个数应该是
    xn := XMLDocument1.DocumentElement.ChildNodes[N];
    ChildCount := xn.ChildNodes.Count;