1

假设我有一个如下的 XML 文件:

<holidays>
    <holiday1 val="New Years, 01/01, First half"/>
    <holiday2 val="Chirstmas, 12/25, Second half"/>
    <holiday3 val="Valentines Day, 02/14, First half"/>
<holidays>

我有一个包含以下标题的表格,我需要将 XML 文件中的数据加载到:

Holiday Name        First Half  Second Half

(我意识到表格标题并不是真正的代码,但我用代码块对其进行了格式化,这样更容易阅读)

所以基本上我想要发生的是如果元素具有属性“上半年”(顺便说一句),然后在假日名称下加载假日名称,在上半年加载日期。如果元素具有“下半场”属性,则仍然在假期名称下加载假期名称,但在下半场下加载日期。它最终应该看起来像这样:

Holiday Name        First Half  Second Half
New Years           01/01
Chirstmas                       12/25
Valentines Day      02/14

我考虑过使用 Xpath 首先检查前半部分或后半部分,然后使用该信息选择正确的单元格来加载数据。但是,我最大的问题是我不知道如何选择日期,或者只是假期名称。

一些背景信息:
- xml 文件的格式不能更改,它是这样给我的,除非绝对不可能实现我想要做的,否则格式不能更改 -
我使用 tinyxml 作为我的解析器
-我在 C++ 中执行此 操作-
我确实知道如何将元素的值加载到表格的单元格中,所以我对此有一点背景知识

提前致谢。如果需要更多信息来帮助您理解我的问题,请发表评论。

4

1 回答 1

0

您将不得不硬着头皮手动解析属性字符串。您将不得不手动搜索“上半场”或“下半场”,看看它是否存在,如果存在,则基于此做一些事情。您将不得不将属性中的 3 个逗号分隔值中的每一个分开并使用它们。

我建议对这种简单的情况进行某种形式的正则表达式解析。或者甚至可能std::string::find会起作用;这取决于您的需求。

于 2012-02-21T17:15:38.867 回答