Given the following expression, how can I use =
to be more concise and explicit?
(//h2/@id[contains(.,"foo") or contains(.,"bar") or contains(.,"baz"))[last()]
Here's what I tried, but my interpreter says it's not valid:
(//h2/@id[text() = ("foo", "bar", "baz")])[last()]
I cannot use contains()
because I need to guard against substring matches. I'm using XPath 1.0 and an answer to a related question is the impetus for this question.
In XPath 2.0,
(//h2[@id = ("foo", "bar", "baz")])[last()]
would select the last h2
element in the document with an id
attribute value of foo
, bar
, or baz
.
In XPath 1.0, you'd use explicit boolean or
operators:
(//h2[@id="foo" or @id="bar" or @id="baz"])[last()]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With