我正在将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,但这似乎不符合目的。

最佳答案

您应该为此使用XPath。

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


(注意:select_node是select_single_node的缩写,从pugixml 1.5开始可用)

关于c++ - pugixml,根据其他子项的值选择特定子项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27376851/

10-13 00:13