Let’s say i have a full html-document as XML-input.
How would the XSLT-file look if i only want to output the first (or any) image from the html?
Let’s say i have a full html-document as XML-input. How would the XSLT-file look
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
One XPath expression that selects the first
<img>element in a document is:(//img)[1]Do note that a frequent mistake — as made by
@Odedin his answer is to suggest the following XPath expression — in general it may select more than one element://img[1](: WRONG !!! 🙂This selects all
<img>elements in the document, each one of which is the first<img>child of its parent.Here is the exact explanation of this frequent mistake — in the W3C XPath 1.0 Recommendation:
NOTE: The location path
//para[1]does not mean the same as the location path/descendant::para[1]. The latter selects the first descendantparaelement; the former selects all descendantparaelements that are the first para children of their parents.A further problem exists if the document has defined a default namespace, which must be the case with XHTML. XPath treats any unprefixed name as belonging to no namespace and the expression
(//img)[1]selects no node, because there is no element in the document that belongs to no namespace and has nameimg.In this case there are two ways to specify the wanted XPath expression:
(//x:img)[1]— where the prefixxis associated (by the hosting language) with the specific default namespcae (in this case this is the XHTML namespace).(//*[name()='img'])[1]