Kashif,

You need to get XML into the system to use XQuery - XQuery does not work on 
strings that happen to have XML in them, but on XML documents. MarkLogic adds 
"unquote," "document-insert" etc. because there is now method in the XQuery 
spec to add XML.

You must use implementation-specific methods to get the XML into the system in 
the first place because XQuery as a spec does not define add/insert functions.

Yours,
Damon

From: [email protected] 
[mailto:[email protected]] On Behalf Of Khan, Kashif
Sent: Friday, May 24, 2013 6:39 PM
To: MarkLogic Developer Discussion
Cc: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Unable to get the value of Element Š.

Yes I looked into that but the problem is that I can not use any MarkLogic 
functions.
Best Regards,
Kashif Khan

Sent from my iPhone

On May 24, 2013, at 6:36 PM, "Danny Sokolsky" 
<[email protected]<mailto:[email protected]>> wrote:
Hi Kashif,

In that case, you can use xdmp:unquote, which parses a string as XML.  
Something like:

let $document :=
"<report>
        <body>
        <row>
            <ChapterTitle>Front Matter</ChapterTitle>
</row>
</body>
</report>"
let $document2 := xdmp:unquote($document)
return $document2//ChapterTitle

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of Khan, Kashif
Sent: Friday, May 24, 2013 3:31 PM
To: MarkLogic Developer Discussion
Cc: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Unable to get the value of Element Š.

Danny I am trying to resolve a problem where I have to convert text string into 
the tag name and then use that to extract the value from the XML.
Best Regards,
Kashif Khan

Sent from my iPhone

On May 24, 2013, at 5:47 PM, "Danny Sokolsky" 
<[email protected]<mailto:[email protected]>> wrote:
Hi Kashif,

Why not treat your XML as XML instead of a string.  Then you can just use 
XPath.  Something like:

let $document :=
<report>
        <body>
        <row>
            <ChapterTitle>Front Matter</ChapterTitle>
</row>
</body>
</report>
return $document//ChapterTitle
=>
<ChapterTitle>Front Matter</ChapterTitle>

-Danny

From: 
[email protected]<mailto:[email protected]>
 [mailto:[email protected]] On Behalf Of Khan, Kashif
Sent: Friday, May 24, 2013 2:38 PM
To: MarkLogic Developer Discussion
Subject: [MarkLogic Dev General] Unable to get the value of Element Š.

Hello Everyone, I am having a problem extracting value from an element
Here is the XML on which I am trying to run my query


Let $document := "<report>
        <body>
        <row>
            <ChapterTitle>Front Matter</ChapterTitle>
</row

</body>

</report>"



These are the functions that I have written to extract the value of the 
"ChapterTitle" Tag



declare function oxy:getHierarchyElements() {


let $TagName := "Chapter Title"


        (:removing the space between Chapter and Title:)

let $tokenizedString := fn:tokenize(($TagName), '\s')
        let $concatString :=  fn:concat($tokenizedString[1], 
$tokenizedString[2])
         return
            element {$concatString} {''}

};

declare function oxy:getLevel($document as xs:string){
    let $file := doc($document)
    let $hierarchy := oxy:getHierarchyElements()
    return
            $file/report/body/row/$hierarchy
};



When I call oxy:getLevel($oxy:document) I get <ChapterTitle/>  instead of 
"Front Matter" from the XML file.



If I replace   $file/report/body/row/$hierarchy with  
$file/report/body/row/ChapterTitle I get the correct value.



Thanks for your help in advance


----------------
Kashif Khan
_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to