Запрос на выбор HTML-тега, не имеющего заданного атрибута

Учитывая следующее дерево:

      style_element [0, 0] - [1, 8]
  start_tag [0, 0] - [0, 19]
    tag_name [0, 1] - [0, 6]
    attribute [0, 7] - [0, 18]
      attribute_name [0, 7] - [0, 11]
      quoted_attribute_value [0, 12] - [0, 18]
        attribute_value [0, 13] - [0, 17]
  raw_text [1, 0] - [1, 0]
  end_tag [1, 0] - [1, 8]
    ERROR [1, 2] - [1, 7]
    tag_name [1, 2] - [1, 7]
style_element [3, 0] - [4, 8]
  start_tag [3, 0] - [3, 19]
    tag_name [3, 1] - [3, 6]
    attribute [3, 7] - [3, 13]
      attribute_name [3, 7] - [3, 13]
    attribute [3, 14] - [3, 18]
      attribute_name [3, 14] - [3, 18]
  raw_text [4, 0] - [4, 0]
  end_tag [4, 0] - [4, 8]
    tag_name [4, 2] - [4, 7]
style_element [6, 0] - [7, 8]
  start_tag [6, 0] - [6, 12]
    tag_name [6, 1] - [6, 6]
    attribute [6, 7] - [6, 11]
      attribute_name [6, 7] - [6, 11]
  raw_text [7, 0] - [7, 0]
  end_tag [7, 0] - [7, 8]
    tag_name [7, 2] - [7, 7]
style_element [9, 0] - [10, 8]
  start_tag [9, 0] - [9, 7]
    tag_name [9, 1] - [9, 6]
  raw_text [10, 0] - [10, 0]
  end_tag [10, 0] - [10, 8]
    tag_name [10, 2] - [10, 7]
style_element [12, 0] - [13, 8]
  start_tag [12, 0] - [12, 14]
    tag_name [12, 1] - [12, 6]
    attribute [12, 7] - [12, 13]
      attribute_name [12, 7] - [12, 13]
  raw_text [13, 0] - [13, 0]
  end_tag [13, 0] - [13, 8]
    tag_name [13, 2] - [13, 7]
style_element [15, 0] - [16, 8]
  start_tag [15, 0] - [15, 14]
    tag_name [15, 1] - [15, 6]
    attribute [15, 7] - [15, 13]
      attribute_name [15, 7] - [15, 13]
  raw_text [16, 0] - [16, 0]
  end_tag [16, 0] - [16, 8]
    tag_name [16, 2] - [16, 7]

который создается путем разбора этого кода:

      <style lang="scss" scoped>
</style>

<style scoped lang>
</style>

<style lang>
</style>

<style>
</style>

<style scoped>
</style>

<style module>
</style>

Когда в теге стиля отсутствует атрибут lang, Я хочу выделить его как css. Вышеупомянутое содержит несколько случаев, которые следует рассмотреть. Только последние три должны быть выделены как css

Пока что я придумал такой запрос:

      ((style_element (start_tag (attribute (attribute_name) @_attr (#not-eq? @_attr "lang"))) (raw_text) @css))

Но, к сожалению, это также подчеркивает <style lang="scss" scoped>потому что он содержит атрибут, который не соответствует lang. Этот тег содержит атрибут lang, поэтому его не следует сравнивать.

Как изменить приведенный выше запрос, чтобы он соответствовал только тегам стиля, если у них нет атрибута lang?

0 ответов

Другие вопросы по тегам