<docbook><section><title>OATDOCxml</title><para> </para>
<title> xml.js</title> xml.js
<para>Useful function for XML access and manipulation.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Functions</bridgehead>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.createXmlDoc(string)</bridgehead>
<para>Parses a string of XML data and returns a document object.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.transformXSLT(xmlDoc, xslDoc[, paramsArray])</bridgehead>
<para>Applies a XSLT template.
 <computeroutput>xslDoc</computeroutput> is a template to be applied to <computeroutput>xmlDoc</computeroutput>.
 Both arguments must be valid XML documents (not strings).
 The third (optional) argument is an array of XSLT parameters.
 Each parameter is a triple (array), which consists of <computeroutput>Namespace</computeroutput>, <computeroutput>Name</computeroutput>, and <computeroutput>Value</computeroutput>.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.textValue(node)</bridgehead>
<para>Returns a text value of <computeroutput>node</computeroutput>.
 So, for the markup below, the <computeroutput>textValue</computeroutput>of tag is <computeroutput>content</computeroutput> --</para>
<programlisting>&lt;tag&gt;content&lt;/tag&gt;
</programlisting><para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.localName(node)</bridgehead>
<para>Returns <computeroutput>node</computeroutput>&#39;s local name - the part without namespace prefix.&lt;xsl:template&gt; has a <computeroutput>localName</computeroutput> template.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.childElements(node)</bridgehead>
<para>Returns all child nodes which are ordinary elements (i.e., no#textnodes, etc.).</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.getElementsByLocalName(node, localName)</bridgehead>
<para>Identical to <computeroutput>getElementsByTagName</computeroutput>, but looks only into non-namespace part of tag name.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.getLocalAttribute(node, attributeName)</bridgehead>
<para>Returns a value of attribute whose non-prefixed name is <computeroutput>attributeName</computeroutput></para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.removeDefaultNamespace(string)</bridgehead>
<para>Takes an XML document in <computeroutput>string</computeroutput> form and removes default namespace.
 This is useful when we want to use XPath queries against such a document, since these cannot be executed against documents with default namespaces.
 Returns XML string.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.xpath(xmlDoc, xPathQuery, nsObject)</bridgehead>
<para>Runs an XPath query (xPathQuery) against <computeroutput>xmlDoc</computeroutput>.
 Namespaces are resolved as properties of <computeroutput>nsObject</computeroutput>.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.escape(xml)</bridgehead>
<para>Returns escaped.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> OAT.Xml.unescape(txt)</bridgehead>
<para>Returns unescaped.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Examples</bridgehead>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> Example 1</bridgehead>
<programlisting>var xmlDoc, xslDoc; // somehow fill these with data
var params = [
        [&quot;myNS&quot;,&quot;myparam1&quot;,&quot;myvalue1&quot;],
        [&quot;myNS&quot;,&quot;myparam2&quot;,&quot;myvalue2&quot;]
]
var result = OAT.Xml.transformXSLT(xmlDoc, xslDoc, params);
</programlisting><para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3"> Example 2</bridgehead>
<programlisting>var xmlString = &#39;&lt;?xml version=&quot;1.0&quot; ?&gt;&lt;document&gt;&lt;node&gt;value&lt;/node&gt;&lt;node /&gt;&lt;/document&gt;&#39;;
var xmlDoc = OAT.Xml.createXmlDoc(xmlString);
var nodeArray = OAT.Xml.xpath(xmlDoc, &#39;//node&#39;, {});
alert(nodeArray.length); // 2
</programlisting><para> <ulink url="CategoryDocumentation">CategoryDocumentation</ulink> <ulink url="CategoryOAT">CategoryOAT</ulink> <ulink url="CategoryOpenSource">CategoryOpenSource</ulink></para>
</section></docbook>