Contents tagged with XQuery

  • Removing HTML formatting tag - BR - from XML using XQuery

    Tags: Xml, XQuery, Flwor, HTML

    This is a personal pet hate of mine.. Mixing HTML formatting tags directly with XML that aren’t escaped or contained within a CDATA section. Sure it is all perfectly valid XML at the end of the day, but it makes working with it a bit harder as each section of text between each <BR/> tag is treated as a separate text node and has to be factored into any schema for that XML structure.

    I’ve been working on an XML migration project recently that has a lot of this going on. Data … more

  • Retrieving the next or previous element node value in an Xml blob using XQuery

    Tags: XQuery, Xml, Xml Functions, Flwor

    It’s been a little while since I wrote a blog post on my favourite subject but this is from a thread on the SSC Xml forum that I was helping out on a couple of weeks ago. I’ve been a bit busy lately with a big project at work, revising/taking exam 70-461 and getting ready for the birth of my second child! But this thread seemed too good a subject for me to miss quickly get a post out showing how I might approach this particular problem.

    Sometimes we are given a pretty poorly … more

  • Using XQuery to remove duplicate values or duplicate nodes from an xml instance

    Tags: XQuery, Xml, Flwor, Xml Functions

    Sometimes we need to retrieve a list distinct values from within an xml instance or even distinct nodes and this is relatively straight forward using XQuery. It gets a bit more complicated if you have attributes in the xml, but it is still possible to retrieve unique xml nodes. On the flip side, it is also possible to only return xml nodes that are duplicated in the xml instance. All the examples can be downloaded here

    Retrieving Distinct Values

    Getting a list of distinct atomic values from a … more

  • Suppressing namespace attributes in nested select statements when using FOR XML workaround

    Tags: Flwor, XQuery, Xml, Namespaces

    I was helping out on the forums the other day with a user who had stumbled across the quirk of SQL putting in an excessive amount of namespace declarations when using nested select statements as part of a FOR XML statement. There is a connect item already open for this, but at the end of the day, the output from SQL is correct, it just bloats the xml. Attached to the connect item is a link to a workaround but it doesn’t work for me as it only solves the problem if none of the xml nodes or … more

  • Using XQuery to transform multiple xml nodes to a single xml node with comma separated string value

    Tags: XQuery, Xml, Flwor, query(), Xml Functions

    Not another comma separated string blog post I hear you say! I know that this topic has probably been done to death but I hope that this is a little different as it is about creating a single xml node containing a comma separated string from the values of multiple other xml nodes all within an XQuery expression.

    Recently I’ve been working on some xml migrations using XQuery and one of the many types of transformations that I had to do was to take a number of identically named xml nodes … more

  • Moving xml child elements to its parent using XQuery

    Tags: Xml, XQuery, query()

    I haven’t been able to do much XQuery development recently which is a shame as I love developing with the technology in SQL. In the past I used to work with xslt’s a lot and they immensely powerful, but since moving to xquerying in SQL, it is now my first choice for quick xml transformations. Especially if the XML is already stored within the database and not externally.

    Lately though I have been involved in a data migration which also involved the transformation of a number of xml … more

  • Retrieving position() value of node by using XQuery alone

    Tags: Xml, XQuery, Hack, Xml Functions

    You can only use the position() function within an xquery predicate and can't use it to return the position value of the node itself, which is a shame, but a couple of good workarounds have been published. However I had a requirement (don't ask why!) to return the position() of the node as a value within the xml itself.

    My requirement was to return an existing xml structure but to also include the position of a particular node as an additional attribute of that node. My other goal was to keep … more

  • FOR XML PATH using node tests in column aliases

    Tags: Xml, XQuery, Xml Functions

    I've used SQL to generate countless blobs of xml over the years and one feature that I have come to rely heavily upon is the ability to easily build complex xml structures by using column aliases in conjunction with the FOR XML PATH clause in your query. Not only do they allow for speedy creation, they also make the query very readable and it doesn't take long to be able to visualize the xml structure just by looking at the query itself. In conjunction with this, there are a number of node tests … more