0

我将 pugixml 与 C++ 一起使用,效果很好。但是,我希望能够从这样的结构中选择一个特定的孩子:

<utcTimeOffsetInfo>
    <UtcTimeOffsetDefinition>
        <utcTimeOffsetCode>1</utcTimeOffsetCode>
        <utcTimeOffset>+0100</utcTimeOffset>
    </UtcTimeOffsetDefinition>
    <UtcTimeOffsetDefinition> 
        <utcTimeOffsetCode>2</utcTimeOffsetCode>
        <utcTimeOffset>+0200</utcTimeOffset>
    </UtcTimeOffsetDefinition>
    <UtcTimeOffsetDefinition>
        <utcTimeOffsetCode>3</utcTimeOffsetCode>
        ...

如果我想获得 +0200 的值,那么能够执行以下操作会很好:

...child("utcTimeOffsetInfo").child("UtcTimeOffsetDefinition").child_value[utcTimeOffsetCode=2]("utcTimeOffset")

我查看了 find_child_by_attribute,但它似乎不符合目的。

4

1 回答 1

1

您应该为此使用 XPath。

doc.select_node("utcTimeOffsetInfo/UtcTimeOffsetDefinition[utcTimeOffsetCode=2]/utcTimeOffset")

(注意:select_node 是 select_single_node 的简写,自 pugixml 1.5 起可用)

于 2014-12-09T16:12:11.207 回答