Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
856 views
in Technique[技术] by (71.8m points)

dom - Get DOMElement with specific text PHP / XPath

In PHP, i want to get all DOMElement containing a given text.

I get DOMText when $xpath->query("//text()[contains(., 'My String')]"), but which query must i perform for getting DOMElement instead?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Use:

(//*[text()
      [contains(., 'My String')]
   ]
 )[1]

This selects the first element in the XML document that has a text node child that contains the string "My String".

If it is guaranteed that only one such element exist, the above expression can be simplified to:

//*[text()
      [contains(., 'My String')]
   ]

If the elements you are looking for are guaranteed to have just a single text-node child, this expression can be simplified to:

(//*[contains(., 'My String')])[1]

respectively:

//*[contains(., 'My String')]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...