【问题标题】:How to select all elements whose id contains a particular substring?如何选择 id 包含特定子字符串的所有元素?
【发布时间】:2012-06-23 16:21:15
【问题描述】:

我想选择 id 包含特定子字符串的所有元素。例如对于这些:

<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>

我想获取 id 中包含 foo 的元素。

【问题讨论】:

    标签: php xpath


    【解决方案1】:

    首先,您的标记似乎损坏了。一旦你像这样修复它:

    <div id="foobootoo"></div>
    <div id="foowoohoo"></div>
    <div id="foodoowoo"></div>
    <div id="soobootoo"></div>
    

    如果你使用这个 xpath,你只会得到前三个节点://div[contains(@id, 'foo')]。

    【讨论】:

      【解决方案2】:

      如果要选择多个元素,只需赋予元素相同的类即可。

      <div id="foobootoo" class="foo"><div>
      <div id="foowoohoo" class="foo"><div>
      <div id="foodoowoo" class="foo"><div>
      <div id="soobootoo" class="foo"><div>
      

      【讨论】:

        【解决方案3】:

        你有没有尝试过……

        $result = $xml->xpath("div[contains(@id,'foo')]");
        

        【讨论】:

          【解决方案4】:

          查看 CSS3 选择器(例如,参见 Web page)。您可以使用以下选择器:

          div[id*="foo"]
          

          你会选择所有 id 中包含子字符串“foo”的 div。

          但是,如果您只想要 id 以“foo”开头的 div,请使用

          div[id^="foo"]
          

          如果你重新排列你的 div 的 id 如下:

          <div id="foo-bootoo"><div>
          <div id="foo-woohoo"><div>
          <div id="foo-doowoo"><div>
          <div id="soo-bootoo"><div>
          

          你可以使用:

          div[id|="foo"]
          

          选择所有 id 以 foo 开头的 div,其余的 id 用连字符分隔(因此,只有前三个)。

          此外,如果您将 div 的 id 重新排列如下(即,将子字符串“foo”放在 id 的末尾):

          <div id="bootoofoo"><div>
          <div id="woohoofoo"><div>
          <div id="doowoofoo"><div>
          <div id="bootoosoo"><div>
          

          你可以使用:

          div[id$="foo"]
          

          选择所有 id 以 foo 结尾的 div(即仅前三个)。

          值得一提的是,还有其他选择器,但这些似乎符合您的需求。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-12-12
            • 1970-01-01
            • 2012-09-03
            • 2018-06-15
            • 1970-01-01
            • 1970-01-01
            • 2015-12-22
            相关资源
            最近更新 更多