假设我有一个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
(我意识到表格标题并不是真正的代码,但我用代码块格式化了它,这样更容易阅读)
因此,基本上,我希望发生的是,如果元素具有属性"First half"(年份btw),那么在holiday name下加载holiday名称,在First half下加载date。如果元素具有属性"secondhalf",则仍然在假日名称下加载假日名称,但在后半部分下加载日期。它最终应该是这样的:
Holiday Name First Half Second Half
New Years 01/01
Chirstmas 12/25
Valentines Day 02/14
我考虑使用Xpath首先检查上半部分或下半部分,然后使用该信息选择正确的单元格来加载数据。然而,我最大的问题是,我不知道如何只选择日期,或者只选择节日名称。
一些背景信息:
-xml文件的格式不能更改,它是这样给我的,除非绝对不可能实现我想要做的事情,否则格式不能更改
-我正在使用tinyxml作为我的解析器
-我在C做这个++
-我知道如何将元素的值加载到表的单元格中,所以我对这个有一些背景知识
提前感谢。如果需要进一步的信息来帮助你理解我的问题,请留下评论。
您将不得不咬紧牙关手动解析属性字符串。你必须手动搜索"上半场"或"下半场",看看它是否存在,如果存在,就根据它做点什么。您必须将属性中的3个逗号分隔值中的每一个分隔开,然后使用它们。
对于这种简单的情况,我建议使用某种形式的正则表达式解析。或者甚至std::string::find
也可以工作;这取决于你的需求。