pugixml,根据其他孩子的值选择特定的孩子

时间:2014-12-09 10:37:19

标签: c++ xml pugixml

我使用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,但它似乎不符合目的。

1 个答案:

答案 0 :(得分:1)

你应该使用XPath。

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

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