Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
809 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 Reply

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')]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...