Delphi解析xml文件

2024-03-09

首先,我对编码和 Delphi 很陌生,已经断断续续使用了几个月了。

下面是一个示例 xml 文件。

我想要实现的是解析 .xml 文件的每个“名称”部分中的所有数据。

我以前从未这样做过。一些指导将不胜感激。我在这里看过与此类似的其他问题,但我无法完全掌握它。

我没有提供代码示例......这就是我的困境,我不知道从哪里开始。

<ds>
<Customers>
<Name>
<address_name>test 1</address_name> 
<address_line_1>test 1</address_line_1> 
<address_line_2>test 1</address_line_2> 
<address_line_3>test 1</address_line_3>
<postcode>test 1</postcode> 
<tel_no>test 1</tel_no> 
<fax_no>test 1</fax_no> 
<email_address>test 1<email_address/> 
<website>test 1<website /> 
</Name>
<Name>
<address_name>test 2</address_name> 
<address_line_1>test 2</address_line_1> 
<address_line_2>test 2</address_line_2> 
<address_line_3>test 2</address_line_3>
<postcode>test 2</postcode> 
<tel_no>test 2</tel_no> 
<fax_no>test 2</fax_no> 
<email_address>test 2<email_address/> 
<website>test 2<website /> 
</Name>
<Name>
<address_name>test 3</address_name> 
<address_line_1>test 3</address_line_1> 
<address_line_2>test 3</address_line_2> 
<address_line_3>test 3</address_line_3>
<postcode>test 3</postcode> 
<tel_no>test 3</tel_no> 
<fax_no>test 3</fax_no> 
<email_address>test 3<email_address/> 
<website>test 3<website /> 
</Name>
<Customers>
</ds>

Thanks,


处理 xml 文件的更好方法是:

<ds>
    <Customers>
        <Customer>
            <address_name>test 1</address_name> 
            <address_line_1>test 1</address_line_1> 
            <address_line_2>test 1</address_line_2> 
            <address_line_3>test 1</address_line_3>
            <postcode>test 1</postcode> 
            <tel_no>test 1</tel_no> 
            <fax_no>test 1</fax_no> 
            <email_address>test 1</email_address> 
            <website>test 1</website> 
        </Customer>
        <Customer>
            <address_name>test 2</address_name> 
            <address_line_1>test 2</address_line_1> 
            <address_line_2>test 2</address_line_2> 
            <address_line_3>test 2</address_line_3>
            <postcode>test 2</postcode> 
            <tel_no>test 2</tel_no> 
            <fax_no>test 2</fax_no> 
            <email_address>test 2</email_address> 
            <website>test 2</website> 
        </Customer>
        <Customer>
            <address_name>test 3</address_name> 
            <address_line_1>test 3</address_line_1> 
            <address_line_2>test 3</address_line_2> 
            <address_line_3>test 3</address_line_3>
            <postcode>test 3</postcode> 
            <tel_no>test 3</tel_no> 
            <fax_no>test 3</fax_no> 
            <email_address>test 3</email_address> 
            <website>test 3</website> 
        </Customer>
    </Customers>
</ds>

要读取此文件:

插入这两个用途:XMLDoc、XMLIntf;

以下是读取 XML 文件的过程。

procedure TForm1.btnReadXmlFileClick(Sender: TObject);
var
  XmlFile : TXMLDocument;
  MainNode, CustomerNode : IXMLNode;
  i : Integer;
  XMLPath : string;
begin
  XMLPath := 'Z:\Temp\xmlToRead.xml'; //example of path
  XmlFile :=  TXMLDocument.Create(Application);
  try
    XmlFile.LoadFromFile(XMLPath);
    XmlFile.Active := True;
    MainNode := XmlFile.DocumentElement;

    for i:=0 to MainNode.ChildNodes['Customers'].ChildNodes.Count-1 do
    begin
      CustomerNode := MainNode.ChildNodes['Customers'].ChildNodes[i];
      //Here you can get any imformation
      ShowMessage(CustomerNode.ChildNodes['address_name'].Text);
      ShowMessage(CustomerNode.ChildNodes['address_line_1'].Text);
    end;
  finally
    FreeAndNil(XmlFile);
  end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi解析xml文件 的相关文章

  • 返回 Web 浏览器中 HtmlElement 的所有属性

    我需要从我的网络浏览器获取所有属性 当前 我正在使用 GetAttribute 但这样 我需要知道属性的名称 想象一下我不知道我的网络浏览器中有什么 我的 C 代码 StringWriter strWriter new StringWrit
  • > 有必要吗?

    我现在开发网站和 XML 接口已有 7 年了 从来没有遇到过真正有必要使用 gt for a gt 到目前为止 所有消歧都可以通过引用来处理 lt and alone 有没有人遇到过这样的情况 与 SGML 处理 浏览器问题 XSLT 等相
  • delphi分组框标题颜色变化

    我正在使用 BDS 2006 想知道您是否可以使用项目中存在的 XPmanifest 更改组框和单选按钮组标题的颜色 因为它始终是蓝色 唯一的方法是重写 Paint 方法TGroupBox http docwiki embarcadero
  • 在 RESTful WCF 中混合 XML 和 JSON,无需单独的方法

    我有一个 RESTful WCF 服务 可以返回 XML JSON 或 JSONP 具体取决于参数 例如 service svc stuff format xml or service svc stuff format json callb
  • 如何在 TList 中存储动态数组?

    我需要存储未知数量的组 每个组都有未知数量的元素 项目 这是我的 小组 TGroup array of Integer lt dynamic array as you can see 我想使用 TList 来保存我的组 我的想法是 我可能想
  • Python getchildren() 不适用于有效的 XML 树

    如果我在 XML 文件上运行以下 python 参见 Q 底部 import xml etree ElementTree as ET tree ET parse C temp test2 xml print tree getchildren
  • 修改“NodeJS”上的 XML 标签

    有谁知道如何使用 NodeJS 修改 XML 文件的标签值 这是我的 XML 文件
  • xslt 匹配过滤结果集的前 x 项

    对 xslt 很陌生 所以如果这是一个基本问题 请原谅我 我无法在 SO 上或通过 Google 搜索找到答案 我想要做的是返回一组经过过滤的节点 然后对该组中的前 1 或 2 个项目进行模板匹配 然后另一个模板与其余项目匹配 但是如果没有
  • 反规范化 XSD

    我需要对 XML 模式进行非规范化 以便为将创建符合该模式的文档的人员生成文档 用户不了解 XSD 并且很可能永远不会学习 我见过的工具能够为其他 XSD 开发人员生成文档 但我的用户对如何构建架构的细节不感兴趣 他们只想知道他们可以做什么
  • 如何选择使用默认命名空间的节点?

    XML 文件的结构大致如下 a b b a
  • XPath 获取没有父节点的所有子节点(元素、注释和文本)

    我需要一个 XPath 来获取所有没有父元素的子节点 包括文本元素 注释元素和子元素 任何帮助 示例示例
  • jQuery:评估 ajax 响应中的脚本

    来自我的 web 应用程序的 XML 响应既有要添加到页面的 HTML 也有要运行的脚本 我正在尝试从我的网络应用程序发回 XML 例如
  • 如何在sql中查询xml列

    我在 SQL Server 2008 上有一个表 T1 其中包含一个 XML 列 EventXML 我想查询某个节点包含特定值的所有行 更好的是 我想检索不同节点中的值 表T1 T1 EventID int EventTime dateti
  • 如何在 .NET 中轻松取消转义 XML 实体

    我有一些代码返回 XMLNode 的 InnerXML 该节点可以只包含一些文本 带有 HTML 或 XML 例如
  • 流畅的 NHibernate 和 XML 列

    我正在从头开始构建一个新站点 并正在考虑使用 Fluent NHibernate 作为我的 ORM 我认为它可以轻松处理所有事情 可能除了我的 XML 列 我从来没有使用 NHibernate 构建过网站 尽管我使用过 Hibernate
  • Delphi - 将物理路径(设备文件句柄)转换为虚拟路径

    我怎样才能转换像这样的路径 设备 HarddiskVolume3 Windows 进入其相应的虚拟路径 如本例中的 c Windows 我个人更喜欢原生方式 function GetHDDDevicesWithDOSPath TString
  • 从 org.w3c.dom.Node 获取 Xpath

    我可以从 org w3c dom Node 获取完整的 xpath 吗 假设当前节点指向 xml 文档中间的某个位置 我想提取该元素的 xpath 我正在寻找的输出 xpath 是 parent child1 chiild2 child3
  • 从 XML 构建树结构的速度很慢

    我正在将 XML 文档解析为我自己的结构 但对于大型输入来说构建它非常慢 是否有更好的方法来做到这一点 public static DomTree
  • 如何通过 XElement 添加属性

    我有这个代码 XElement EcnAdminConf new XElement Type new XElement Connections new XElement Conn Conn SetAttributeValue Server
  • 如何轻松调试布局 Xml 警告/错误?

    我陷入了这个错误 Warning simplexml load string Entity line 46 parser error Comment not terminated in lib Varien Simplexml Config

随机推荐

  • iPhone 写入/读取 plist 文件

    我的 iPhone 应用程序中有 plist 我想从我的 single 中读取和写入一个整数并形成它 我有这个来阅读 scoreData score scoreData sharedData filePath stats plist NSM
  • 为什么 BufferedStream.Write 会抛出“此流不支持查找操作”?

    这个让我很困惑 当我什至没有调用它时 我收到有关搜索的错误 我的代码看起来像这样 send 42 uint value 42 byte msg BitConverter GetBytes value stream Write msg 0 s
  • 安装的glimpse尝试访问glimpse.axd并收到404错误?

    这很简单 我在这个页面安装了glimpse http getglimpse com About QuickStart http getglimpse com About QuickStart 然后我尝试导航到http myApp glimp
  • 在 Hibernate 中映射多级继承

    目前我有这样的结构 A B C 它使用连接表与每个子类映射一个表 由于历史原因我也使用了判别器 所以目前的情况如下所述Hibernate 手册第 9 1 3 节 http www hibernate org hib docs v3 refe
  • Mvc ActionLink 与 JavaScript

    我正在使用 MVC 我有一个带有 ActionLink 的视图 它调用我的控制器的 Action 我的问题是当我想在该操作链接的 onClick 事件上调用 javascript 函数时 因为该操作链接转换为执行时间上的 html 标准标记
  • Chrome -> 检查元素 -> 网络 (XHR) -> 预览选项卡 (HTML) 问题

    我在网络部分的预览选项卡上遇到问题 返回 HTML 时 我在预览和响应中看到原始 HTML 有时 但极少数情况下 HTML 会在 预览 选项卡中正确呈现 是我做错了什么还是只是 Chrome 的一些错误 Thanks 我也在测试这个 对我来
  • 如何找到AVPlayer当前比特率

    我正在尝试获取 AVPlayer 播放视频流的比特率 我尝试过observed bit rate的财产AVPlayerItemAccessLogEvent 但它具有非常高的价值 经过进一步探索Observed bit rate财产 我了解该
  • 如何将 OpenCV Mat 划分为矩形子区域?

    我想划分一个简单的Mat 200x200 位于不同区域 10x10 我做了两个循环 然后创建了一个Rect我在其中指出每次迭代中我想要的变量 x y width height 最后 我将图像的该区域保存在vector of Mats 但我的
  • 如何每天自动备份Firestore数据库

    我想每天备份 Firestore 数据库 我的数据结构是这样的 usersCollection uid defaultCurrency USD name something dreamsCollection name image 我看过fi
  • 压倒一切!重要的风格

    标题几乎概括了这一点 外部样式表有以下代码 td EvenRow a display none important 我尝试过使用 element style display inline and element style display
  • NetworkStream 正在读取不应该存在的数据

    我在 NetworkStream 从套接字缓冲区读取不应该存在的数据时遇到问题 顺便说一句 我正在发送非常大的缓冲区 现在我刚刚在本地主机上进行测试 这是我读取数据的方式 前 4 个字节包含消息的长度 然后我只读取 4096 个块 直到达到
  • 如何配置 husky pre-push hook 来运行测试

    我正在尝试配置 husky 预推送挂钩以在推送之前运行测试 一切看起来都很好 跑完后git push origin钩子被触发并且测试正在运行 问题是 当测试完成后 即使操作成功 推送也会被冻结 并且没有其他事情发生 包 json scrip
  • SQL Server - 列顺序重要吗?

    在性能和优化方面 在 SQL Server 中构建表时 列的排列顺序重要吗 我的主键是第一列有什么关系吗 构建多字段索引时 列是否相邻有关系吗 Using ALTER TABLE syntax is it possible to speci
  • 正则表达式匹配 img 标签中的任何 url

    我需要一个可以匹配 img src 标签中任何 url 的正则表达式 URL 可以是 images temp jpg 或 temp1 jpg 甚至 http www example com temp jpg i 123 或其他任何内容 我写
  • 使用带参数的资源文件

    我的问题是关于 c 中的资源文件 resx 字符串 部分 我用它来存储我的消息 我想知道如何使用带参数的资源条目的 值 例子 名称 显示单元格值 值 单元格上的值 和行 是 我想填写 具有不同值的参数 谢谢你 您可以对资源文件中存储的字符串
  • 确保 Spring Quartz 作业执行不重叠

    我有一个 Java 程序 每 20 秒从 Spring Qquartz 执行一次 有时只需要几秒钟即可执行 但随着数据变大 我确信它会运行 20 秒或更长时间 当一个实例仍在执行时 如何防止 Quartz 触发 触发作业 解雇两个在数据库上
  • 在两个视图控制器之间进行 Segue

    在我的故事板 如上所示 上 我有一个 ViewController 它包含一个带注释的 MKMapView 这些注释包含一个公开图标 点击该图标时 应该将用户导航到另一个 ViewController 为此 我在视图控制器之间创建了一个推送
  • 有没有办法评估带有液体标签的字符串

    我需要提供页面内容参考列表 它应该包含页面上各部分的参考 我能看到的唯一方法是使用page content并解析它 但我偶然发现了数据评估的问题 例如我可以从page content site data sdk language SDK但没
  • Java 中比较版本字符串的有效方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何比较 Java 中的两个版本字符串 https stackoverflow com questions 198431 how do you compare two version strings
  • Delphi解析xml文件

    首先 我对编码和 Delphi 很陌生 已经断断续续使用了几个月了 下面是一个示例 xml 文件 我想要实现的是解析 xml 文件的每个 名称 部分中的所有数据 我以前从未这样做过 一些指导将不胜感激 我在这里看过与此类似的其他问题 但我无