I used $x//text() in place of $x/text()  as it try to get text from a
direct child of the context element. i.e. head. that is the reason you are
not seeing any result.

If you add any text inside <head> then your $x/text() will return the
result.

If you have to check the text present in any level, you need to use //.

Use data and string like below,

Please correct somebody if I am wrong here.

let $x :=
<head xmlns="http://www.w3.org/1999/xhtml";>
    <script type="text/javascript"></script>
    <title> </title>
</head>
return data($x/node()[fn:normalize-space(.) ne ''])


let $x :=
<head xmlns="http://www.w3.org/1999/xhtml";>
    <script type="text/javascript"></script>
    <title> </title>
</head>
return string($x/node()[fn:normalize-space(.) ne ''])

Please note, performance will be poor in these cases

Please don't use $x//string() or $x//data(), It will give you multiple
results based on element hierarchy.

On Thu, Apr 9, 2015 at 1:17 PM, Indrajeet Verma <[email protected]>
wrote:

> Rahul - I am not completely sure on your question however could you try
> below code and see if this helps,
>
> let $x :=
> <head xmlns="http://www.w3.org/1999/xhtml";>
>     <script type="text/javascript"></script>
>     <title></title>
> </head>
> return $x//text()[fn:normalize-space(.) ne '']
>
>
>
> On Thu, Apr 9, 2015 at 1:05 PM, Asitmohan Nautiyal <[email protected]>
> wrote:
>
>>  Hi Rahul,
>>
>>
>>
>> Please refer below link for your clarification written by David log back
>> ago :
>>
>>
>>
>> http://blog.davidcassel.net/2011/06/text-fnstring-and-fndata/
>>
>>
>>
>>
>>
>> Regards,
>>
>> Asit Nautiyal
>>
>> *From:* [email protected] [mailto:
>> [email protected]] *On Behalf Of *Rahul Gupta
>> *Sent:* 09 April 2015 12:41
>> *To:* [email protected]
>> *Subject:* [MarkLogic Dev General] text() Vs String() Vs data()
>>
>>
>>
>> I have come across a problem. I want to check here whether the given xml
>> contains any kind of text. I don’t want any output if any of the children
>> doesn’t have any text. Like in the example given, it should not give me
>> anything.
>>
>> let $x :=
>>
>> <head xmlns="http://www.w3.org/1999/xhtml";>
>>
>>     <script type="text/javascript"></script>
>>
>>     <title></title>
>>
>> </head>
>>
>> (1) $x/text() will yield nothing. But if I change Hi David, then also it
>> is returning nothing since text() works on the self-node. That’s fine.
>>
>> (2) $x/string() will yield something but dont know what? I was expecting
>> it should not give me anything in the example mentioned. Can you please
>> help?
>>
>> (3) $x/data gives “XDMP-NONMIXEDCOMPLEXCONT: Node has complex type with
>> non-mixed complex content.” since the head node is under some namespace
>> {WHY??}. Removing the namespace solves this error but behaving same like
>> string.
>>
>>
>>
>> Thanks & Regards,
>>
>> Rahul
>>
>>
>>
>> ::DISCLAIMER::
>>
>> ----------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> The contents of this e-mail and any attachment(s) are confidential and
>> intended for the named recipient(s) only.
>> E-mail transmission is not guaranteed to be secure or error-free as
>> information could be intercepted, corrupted,
>> lost, destroyed, arrive late or incomplete, or may contain viruses in
>> transmission. The e mail and its contents
>> (with or without referred errors) shall therefore not attach any
>> liability on the originator or HCL or its affiliates.
>> Views or opinions, if any, presented in this email are solely those of
>> the author and may not necessarily reflect the
>> views or opinions of HCL or its affiliates. Any form of reproduction,
>> dissemination, copying, disclosure, modification,
>> distribution and / or publication of this message without the prior
>> written consent of authorized representative of
>> HCL is strictly prohibited. If you have received this email in error
>> please delete it and notify the sender immediately.
>> Before opening any email and/or attachments, please check them for
>> viruses and other defects.
>>
>>
>> ----------------------------------------------------------------------------------------------------------------------------------------------------
>>
>> _______________________________________________
>> General mailing list
>> [email protected]
>> Manage your subscription at:
>> http://developer.marklogic.com/mailman/listinfo/general
>>
>>
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to