【发布时间】:2012-05-10 13:58:34
【问题描述】:
我一直在使用 C++ 和 Xerces-c 开发 XML 解析器,但我似乎遇到了一个我无法解决的问题(不是主要问题,我可以解决但不要想“破解”我的方式:))
我有一个这样的 XML 文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Config>
<Person>
<Title>Mr.</Title>
<Forename>Stephen</Forename>
<Surname>Cassidy</Surname>
<Job>
<Title>Position1</Title>
<Position>Worker</Position>
<Salary>£6.40</Salary>
</Job>
<Job>
<Title>NewJob</Title>
<Position>PositionWorker1</Position>
<Position>AnotherPosition</Position>
<Salary>£12,000</Salary>
</Job>
</Person>
我要做的是弄清楚一个节点是否只是其他子节点的“占位符”,例如像<Person> 节点或<Job> 节点,只检查它的子节点,而不是尝试任何处理。
这样做的原因是我将节点值存储在一个类中,该类存储节点名称(例如 Title)和值(例如 NewJob),以及子条目列表,因此 Job 将是一个节点条目,那么 Title、Position 和 Salary 都将是 Job 的“子”条目。但是,我也希望能够检查 Job 是否已经有 Position 条目,而不是创建一个新条目并将其添加到 Job,只需将 Position 的值添加到已经存在的 Position 条目......如果这样对任何人都有意义:)
任何帮助都将不胜感激,我不希望有人为它编写代码或为我编写任何代码,只是一些提示或指针:)!
【问题讨论】:
-
为什么将节点存储在自己的类中? Xerces 为此提供了结构。一般来说,我会考虑检查每个子条目的名称,如果它是“位置”,则返回节点。
标签: c++ xml-parsing xerces-c