Oh I see what you're trying to do...
xquery version "3.0";
let $bookstore :=
<bookstore>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
<book category="XML">
<title>Best XML book</title>
<author>you</author>
<year>2014</year>
<price>1.00</price>
</book>
</bookstore>
let $my-book := $bookstore/book[contains(./title/text(), "Learning")]
(: this works too :)
(: let $my-book := $bookstore/book/title[contains(./text(), "Learning")]/.. :)
(: let $my-book := $bookstore/book/title[contains(./text(),
"Learning")]/parent::* :)
(: return <p>{string-join($my-book/string(), codepoints-to-string(10))}</p> :)
return
element table
{
for $element in $my-book/child::*
return
element tr
{
element td { local-name($element)||':' },
element td { $element/text() }
}
}
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of
e-letter
Sent: Friday, December 27, 2013 3:20 AM
To: [email protected]
Subject: [xquery-talk] xpath1 text node contains attribute, equivalent in xpath2
Readers,
For an xml file:
...
<book
category="WEB"
>
<title
lang="en"
>
Learning XML
</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
...
An xquery file was created and processed using jedit xml plugins:
<html>
<body>
<p>
{
let $x :=
fn:doc("xmldatabasefile.xml")/bookstore/book/title[contains(text(),'XML')]/parent::*
return $x
}
</p>
</body>
</html>
Xpath1 specification ยง 4.2 string functions
(http://www.w3.org/TR/xpath/#section-String-Functions) describes a "contains"
function, but this was not found in xpath2; what is the equivalent function in
xpath2 please?
The resultant output:
<html>
<body>
<p>
<book category="WEB">
<title lang="en">
Learning XML
</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</p>
</body>
</html>
Is it possible to remove the xml elements from the output file?
An alternative xquery was attempted:
...<p>
{
let $x :=
fn:doc("xmldatabasefile.xml")/bookstore/book/title/text()
return $x
}
</p>...
Resultant output:
...<p>
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
</p>...
Is it possible to select a specific title text with this xquery syntax?
_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk
________________________________
The contents of this message may be privileged and confidential. Therefore, if
this message has been received in error, please delete it without reading it.
Your receipt of this message is not intended to waive any applicable privilege.
Please do not disseminate this message without the permission of the author.
Please consider the environment before printing this e-mail
_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk