Great... thank you Joe.

From: [email protected] 
[mailto:[email protected]] On Behalf Of Joe Bryan
Sent: Tuesday, December 8, 2015 10:54 PM
To: MarkLogic Developer Discussion <[email protected]>
Subject: Re: [MarkLogic Dev General] simple xQuery Web Application

To clarify: /text() returns a sequence of all the immediate child text nodes, 
while /fn:string() returns the concatenation of all the descendant text nodes. 
There's more details in Evan's great post here: 
https://developer.marklogic.com/blog/text-is-a-code-smell. And that comment 
thread covers the same attribute-in-element problem that you're having here.

Thanks.

-jb

From: 
<[email protected]<mailto:[email protected]>>
 on behalf of Joe Bryan 
<[email protected]<mailto:[email protected]>>
Reply-To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Date: Wednesday, December 9, 2015 at 1:47 AM
To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Subject: Re: [MarkLogic Dev General] simple xQuery Web Application

Hi Javier,

$entries is an attribute: if $employees/@count is 10, <td>{ $entries }</td> 
will return <td count="10"></td>.

Instead, you should be converting @count to a string:

$entries := $employees/@count/fn:string()

You should do the same for $fullname: text() doesn't always do what you'd 
expect, and it returns a text{} node, not a string:

$fullname := $employees/fn:string()

Thanks.

-jb

From: 
<[email protected]<mailto:[email protected]>>
 on behalf of Javier Lizarraga 
<[email protected]<mailto:[email protected]>>
Reply-To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Date: Wednesday, December 9, 2015 at 12:56 AM
To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Subject: Re: [MarkLogic Dev General] simple xQuery Web Application

I using xquery... specifically modifying the World's Leader xquery application, 
the index.xqy file.  Here is the same code:
I get no value for @count

let $emp := local:getEmployees()
for $employees in $emp/search:facet/search:facet-value
let $fullname := $employees/text()
let $entries  := $employees/@count
let $urlBuild := fn:concat("fullName=", $fullname, "&amp;", "workDate=", 
"10-1-2015")
return (

    <tr>
      <td colspan="10"><hr/></td>
    </tr>,
    <tr>
                <td><b><a 
href="http://localhost:8077/bycountry.xqy?{$urlBuild}";>{$fullname}</a></b></td<http://localhost:8077/bycountry.xqy?%7b$urlBuild%7d%22%3e%7b$fullname%7d%3c/a%3e%3c/b%3e%3c/td>>
                <td>2015-08-04</td>
                <td>2015-08-10</td>
                <td><b>{$entries}</b></td>
                <td>{local:getTotalHours($fullname)}</td>
                <td>{local:getAverageHours($fullname)}</td>
                <td>{local:getMaxHours($fullname)}</td>
    </tr>,


    <tr>
      <td colspan="10" class="summary">$description...</td>
    </tr> )
}
  </table

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of David Lee
Sent: Tuesday, December 8, 2015 8:03 PM
To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Subject: Re: [MarkLogic Dev General] simple xQuery Web Application

>> The following code works in the Query Console but does not work in my xQuery 
>> application.

What is your application? (What library/program etc)
The results shown look correct for the first return

You are returning a sequence of sequences which will flatten to a single long 
sequence.
Some XQuery APIs' dont handle sequence results ( or do not using the most basic 
interface).






-----------------------------------------------------------------------------
David Lee
Lead Engineer
MarkLogic Corporation
[email protected]<mailto:[email protected]>
Phone: +1 812-482-5224
Cell:  +1 812-630-7622
www.marklogic.com<http://www.marklogic.com/>

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of Javier Lizarraga
Sent: Tuesday, December 08, 2015 8:06 PM
To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Subject: Re: [MarkLogic Dev General] simple xQuery Web Application

Hello David,

Related question...

I am having issues accessing an element attribute in search:facet...

The following code works in the Query Console but does not work in my xQuery 
application.

let $emp := search:search("(Bachala OR Chakka OR Kompelly OR Lasseter)", 
$options)
for $employees in $emp/search:facet/search:facet-value
let $fullname := $employees/text()
let $entries  := $employees/@count
return ($fullname, $entries, $emp)

==>

Vishnu Bell

47
<search:responsesnippet-format="empty-snippet"total="91"start="1"page-length="100"xmlns:search="http://marklogic.com/appservices/search";>
<search:facetname="FULL_NAME"type="xs:string">
<search:facet-valuename="Vishnu Bell"count="47">
Vishnu Bell
</search:facet-value>
<search:facet-valuename="Bala Bell"count="36">
Bala Bell
</search:facet-value>
<search:facet-valuename="Stephen Bell"count="8">
Stephen Bell
</search:facet-value>
</search:facet>
<search:qtext>
(Bachala OR Chakka OR Kompelly OR Lasseter)
</search:qtext>
</search:response>

Advice would be greatly appreciated.

Javier

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of David Lee
Sent: Thursday, December 3, 2015 11:51 AM
To: MarkLogic Developer Discussion 
<[email protected]<mailto:[email protected]>>
Subject: Re: [MarkLogic Dev General] simple xQuery Web Application

Thanks that works.  So, the * is saying any namespace.

Yes,   (as of XPath 2.0)
/element  == element in no namepace
/*:element == element in any namepace

Very useful for quick 'one off's when you dont want to bother with the 
neamespace decl,
but its a bad habbit to get into for production code -- you can end up 
selecting elements in unexpected places
that you didnt intend.


-----------------------------------------------------------------------------
David Lee
Lead Engineer
MarkLogic Corporation
[email protected]<mailto:[email protected]>
Phone: +1 812-482-5224
Cell:  +1 812-630-7622
www.marklogic.com<http://www.marklogic.com/>


_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to