将具有多个值的XML属性加载到不同的表格单元格

时间:2012-02-21 17:04:24

标签: c++ xml tinyxml

假设我有一个类似以下的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文件的格式不能改变,它是这样给我的,除非绝对不可能实现我想做的事情,那么格式不能改变
-i我使用tinyxml作为我的解析器
我正在用C ++做这件事
-i确实知道如何将元素的值加载到表格的单元格中,所以我对此有一点背景知识

先谢谢了。如果需要进一步的信息来帮助您理解我的问题,请发表评论。

1 个答案:

答案 0 :(得分:0)

您将不得不咬紧牙关并手动解析属性字符串。你将不得不手动搜索“上半场”或“下半场”,看看它是否在那里,如果是,那就做一些基于此的事情。您将不得不将属性中的3个逗号分隔值中的每一个分开,并使用它们。

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