【问题标题】:XPATH select nodes with multiple child values partial matchingXPATH 选择具有多个子值部分匹配的节点
【发布时间】:2012-11-28 03:04:20
【问题描述】:

我想选择具有特定值的子元素很少的元素。这是xml的示例:`

<events>
  <event>
    <startDateTime>2012-12-0128090</startDateTime>
    <homeTeam>
      <name>TEST123</name>
    </homeTeam>
  </event>
</events>`

我想要的结果是事件,它包含值为 2012-12-01 的 startDateTime 并包含 homeTeam/Name 的 TEST 值。

我正在尝试这样:

//events/event[startDateTime[contains(.,'2012-12-01')] and homeTeam/name[contains(.,'TEST')]]');

这也会返回我指定的 starDateTime 与指定不同的事件。

提前致谢。

【问题讨论】:

    标签: php xml xpath


    【解决方案1】:

    我稍微调整了您的 XML 和 XPath

    <events>
        <event>
            <startDateTime>2012-12-0128090</startDateTime>
            <homeTeam>
                <name>TEST123</name>
            </homeTeam>
        </event>
        <event>
            <startDateTime>*2013-12-0128090*</startDateTime>
            <homeTeam>
                <name>TEST123</name>
            </homeTeam>
        </event>
    </events>
    

    然后我使用以下 XPath 访问第二个节点:

    //events/event[(startDateTime[contains(.,'2013-12-01')]) and (homeTeam/name[contains(.,'TEST')])]
    

    我还用不同的名称值对其进行了测试,它似乎工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      相关资源
      最近更新 更多