在delphi7中,如何用TXMLDocument这个类访问下面这个xml中的"商品名称"这个节点的值:<?xml version="1.0" encoding="gb2312"?> <inv> <fpzl>s</fpzl> <成品油>0</成品油> <getmw/> <CheckEWM/> <PriceKind>1</PriceKind> <autoxxb>0</autoxxb> <购方名称>重庆缙嘉嘉商贸有限公司</购方名称> <购方税号>91500117MA7KPJXP0Y</购方税号> <购方银行帐号>中国银行重庆合川支行113078682068</购方银行帐号> <购方地址电话>重庆市合川区草街拓展园区15723038760</购方地址电话> <税率>0</税率> <备注/> <开票人>张三</开票人> <复核人>周雯燕</复核人> <收款人>陈溢倩</收款人> <销方银行帐号>中国银行鄯善县新城东路支行107670942234</销方银行帐号> <销方地址电话>广州市番禺区456315896</销方地址电话> <合计金额>995575.22</合计金额> <合计税额>129424.78</合计税额> <销售单据编号>HS.GY.DBHS20230526-0025121</销售单据编号> <销方名称>航信培训企业</销方名称> <销方税号>440001999999179</销方税号> <原发票代码/> <原发票号码/> <通知单编号/> <电子邮箱/> <手机号/> <开票日期/> <红冲原因></红冲原因> <details> <detail> <商品编号/> <商品名称>金属硅鿃</商品名称> <规格型号/> <计量单位>吨</计量单位> <税收分类编码>1080208</税收分类编码> <数量>75</数量> <单价>15000</单价> <金额>1125000</金额> <税额>129424.78</税额> <优惠政策名称/> <税率>13</税率> <零税率标志/> </detail> </details> <清单标志>0</清单标志> </inv>
时间: 2023-07-02 07:14:58 浏览: 1128
可以使用以下代码来访问节点值:
```delphi
var
XMLDoc: TXMLDocument;
Node: IXMLNode;
begin
XMLDoc := TXMLDocument.Create(nil);
try
XMLDoc.LoadFromFile('file.xml');
Node := XMLDoc.DocumentElement.ChildNodes.FindNode('details').ChildNodes.FindNode('detail').ChildNodes.FindNode('商品名称');
if Assigned(Node) then
ShowMessage(Node.Text);
finally
XMLDoc.Free;
end;
end;
```
其中,'file.xml' 是你的XML文件路径。以上代码将会输出 "金属硅鿃"。
相关问题
delphi7读取三级节点的xml文件
Delphi 7是一个用于开发Windows应用程序的集成开发环境(IDE),它支持各种编程语言和技术,包括XML的处理。要读取一个带有三级节点的XML文件,你可以使用Delphi 7自带的XMLDocument组件。
首先,在Delphi 7的工具栏上点击"Components",然后选择"Import Component",再选择"Import ActiveX Control"。在弹出的"Import Component"窗口中,找到并选中"Microsoft XML, v4.0"(或其他适合你的版本),点击"Install"按钮进行安装。安装完成后,可以在"Component Palette"中看到这个组件。
接下来,在你的Delphi项目中,添加一个TXMLDocument组件。在对象树中找到这个组件,找到其属性"FileName",将其设为你要读取的XML文件的路径。
然后,点击"Component Palette"中的"XML Nodes",然后点击你的表单(Form)上的任意位置,会自动添加一个TXMLNodeList组件。选中这个组件,找到其属性"RootNode",将其设为TXMLDocument的"DocumentElement"。
接下来,你可以使用TXMLNodeList的属性和方法来访问和操作XML文件中的节点。使用Count属性获取节点数量,使用Nodes属性获取节点列表。
对于三级节点,你可以使用嵌套的循环来遍历和访问它们。例如,你可以使用以下代码:
```
var
Level1Node, Level2Node, Level3Node: IXMLNode;
NodeList1, NodeList2: IXMLNodeList;
i, j: Integer;
begin
NodeList1 := XMLNode1.ChildNodes; // 一级节点列表
for i := 0 to NodeList1.Count - 1 do
begin
Level1Node := NodeList1.Item[i]; // 获取一级节点
NodeList2 := Level1Node.ChildNodes; // 二级节点列表
for j := 0 to NodeList2.Count - 1 do
begin
Level2Node := NodeList2.Item[j]; // 获取二级节点
if Level2Node.NodeName = 'ThirdLevelNode' then // 判断节点名称
begin
Level3Node := Level2Node.ChildNodes.First; // 获取三级节点
// 在这里可以对三级节点进行操作
end;
end;
end;
end;
```
这样,你就可以通过三级节点的名称和位置来读取和处理XML文件中的数据了。记得在代码结束后,释放所使用的组件和内存资源。
希望对你有所帮助!
delphi txmldocument节点是否存在
可以通过以下步骤来判断Delphi中的TXMLDocument节点是否存在:
1. 首先,确保你已经在程序中正确地创建了TXMLDocument对象。可以执行以下代码来创建一个TXMLDocument对象:
```
var
XMLDoc: IXMLDocument;
begin
XMLDoc := TXMLDocument.Create(nil);
```
2. 接下来,你可以使用节点的XPath表达式来检查节点是否存在。TXMLDocument类提供了一个XPathSelect方法用于执行XPath查询。你可以使用以下代码来检查节点是否存在:
```
var
NodeList: IXMLNodeList;
begin
NodeList := XMLDoc.DocumentElement.XPathSelect('/path/to/node');
if NodeList.Length > 0 then
begin
// 节点存在
end
else
begin
// 节点不存在
end;
```
这里的"/path/to/node"是你要查找的节点的XPath表达式。
3. 在以上代码中,我们使用了XMLDoc.DocumentElement来获取XML文档的根节点。你可以根据你的实际需求来修改这一部分的代码。
通过以上步骤,你可以使用Delphi的TXMLDocument类来判断一个节点是否存在。