Mercurial > repos > iuc > xpath
diff xpath.xml @ 0:7e01c6a6dbed draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/xpath commit e0575333e6f08ef02fc66c2764b43ebd15c6b04b
author | iuc |
---|---|
date | Fri, 10 Jun 2016 15:08:32 -0400 |
parents | |
children | 1ba5c66e39c9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xpath.xml Fri Jun 10 15:08:32 2016 -0400 @@ -0,0 +1,111 @@ +<?xml version="1.0"?> +<tool id="xpath" name="XPath" version="@WRAPPER_VERSION@.0"> + <description>compute xpath expressions on XML data</description> + <macros> + <import>macros.xml</import> + </macros> + <expand macro="requirements"/> + <expand macro="stdio"/> + <command interpreter="bash"><![CDATA[xpath + -q + -e '$expression' $input > $output + ]]></command> + <inputs> + <param name="input" type="data" format="xml" label="Input XML data"/> + <param name="expression" type="text" label="XPath Query"> + <sanitizer> + <valid> + <add value="""/> + <add value="["/> + <add value="]"/> + <add value="@"/> + </valid> + </sanitizer> + </param> + </inputs> + <outputs> + <!-- TODO: sometimes there's text output (e.g. text() queries) --> + <data format="xml" name="output" label="XPath expression on $input.name"/> + </outputs> + <tests> + <test> + <param name="input" value="test.xml"/> + <param name="expression" value="//b[@attr="value"]" /> + <output name="output" file="1.xml"/> + </test> + <test> + <param name="input" value="test.xml"/> + <param name="expression" value="//b[@attr]" /> + <output name="output" file="2.xml"/> + </test> + <test> + <param name="input" value="test.xml"/> + <param name="expression" value="//b/text()" /> + <output name="output" file="3.xml"/> + </test> + </tests> + <help><![CDATA[ +**What it does** + +Query XML files with XPath expressions. + +For an example input file:: + + <root> + <IdList> + <Id>1234</Id> + <Id>1235</Id> + <Id>1236</Id> + <Id>1237</Id> + </IdList> + </root> + +One could query out the IDs specifically with a query like:: + + //Id/text() + +**XPath Expressions** + +There are many helpful tutorials on the internet for XPath expressions. +`Wikipedia <https://en.wikipedia.org/wiki/XPath>`__ has a number of good +examples. + +**Some More Examples** + +For an XML document like the following:: + + <root> + <a> + <b attr="value">1</b> + <b attr="none">2</b> + <b>3</b> + </a> + <c> + <d>4</d> + <e>5</e> + </c> + </root> + +Here are some example queries and their outputs: + ++====================+===================================================+ +| Query | Result | ++--------------------+---------------------------------------------------+ +| //b[@attr="value"] | <b attr="value">1</b> | ++--------------------+---------------------------------------------------+ +| //b[@attr] | <b attr="value">1</b><b attr="none">2</b> | ++--------------------+---------------------------------------------------+ +| //b | <b attr="value">1</b><b attr="none">2</b><b>3</b> | ++--------------------+---------------------------------------------------+ +| //b/text() | 1\n2\n3 | ++--------------------+---------------------------------------------------+ +| /root/*/*/text() | 1\n2\n3\n4\n5 | ++--------------------+---------------------------------------------------+ + + + +@ATTRIBUTION@ +]]></help> + <citations> + </citations> +</tool>