English 中文(简体)
How to unencode escaped XML with xQuery
原标题:

I have a variable in xQuery of type xs:string with the value of an encoded HTML snippet (the content of a twitter tweet). It looks like this:

Headlines-Today • AP sources: <b>Obama</b> pick for Justice post withdraws : News - Rest Of World - <a href="http://shar.es/mqMAG">http://shar.es/mqMAG</a>

When I try to write this out in an HTML block, I need the string to be unescaped so that the HTML snippet will be interpreted by the browser. Instead the string is getting written out as is and the browser is rendering it as just text (so you see <a href="blah.... ). Here s how I m writing out this string:

{$entry/atom:content/text()}

How can I have the escaped characters unencoded so it writes < rather tha &lt; ?

I ve tried to do a replacelike this but it always replaces the &lt; with &lt; !

fn:replace($s, "&lt;", "<")

问题回答

In MarkLogic you can use the below query:

let $d :=  <a>&lt;c&gt;asdf&lt;/c&gt;</a>  

return xdmp:unquote ($d)

in eXist, use util:parse():

util:parse(concat("<top>","&lt;c&gt;asdf&lt;/c&gt;",</top>")‌​)

Depends on which XQuery processor you are using... The easiest way is to be using a processor that has an extension that handles this for you. For instance, with Saxon and the following XML:

<a>&lt;c&gt;asdf&lt;/c&gt;</a>

You can write an XQuery that uses the saxon:parse() function to do what you want:

declare namespace saxon = "http://saxon.sf.net/";

<a>{
  saxon:parse(doc( test.xml )/a)
}</a>

The result from that is:

<a>
  <c>asdf</c>
</a>

I think most(?) XQuery processors will have an extension to do this for you. Hope that helps.

since XQuery 3 you can use the parse-xml() or parse-xml-fragment() functions. See also:





相关问题
how to represent it in dtd?

I have two element action and guid. guid is a required field when action is add. but when action is del it will not appear in file. How to represent this in dtd ?

.Net application configuration add xml-data

I need to add xml-content to my application configuration file. Is there a way to add it directly to the appSettings section or do I need to implement a configSection? Is it possible to add the xml ...

XStream serializing collections

I have a class structure that I would like to serialize with Xstream. The root class contains a collection of other objects (of varying types). I would like to only serialize part of the objects that ...

MS Word splits words in its XML format

I have a Word 2003 document saved as a XML in WordProcessingML format. It contains few placeholders which will be dynamically replaced by an appropriate content. But, the problem is that Word ...

Merging an XML file with a list of changes

I have two XML files that are generated by another application I have no control over. The first is a settings file, and the second is a list of changes that should be applied to the first. Main ...

How do I check if a node has no siblings?

I have a org.w3c.dom.Node object. I would like to see if it has any other siblings. Here s what I have tried: Node sibling = node.getNextSibling(); if(sibling == null) return true; else ...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

热门标签