File: xpf_string.xml

package info (click to toggle)
virtuoso-opensource 7.2.5.1%2Bdfsg1-0.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 285,240 kB
  • sloc: ansic: 641,220; sql: 490,413; xml: 269,570; java: 83,893; javascript: 79,900; cpp: 36,927; sh: 31,653; cs: 25,702; php: 12,690; yacc: 10,227; lex: 7,601; makefile: 7,129; jsp: 4,523; awk: 1,697; perl: 1,013; ruby: 1,003; python: 326
file content (113 lines) | stat: -rw-r--r-- 5,511 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 -  
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -  
 -  Copyright (C) 1998-2018 OpenLink Software
 -  
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -  
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -  
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -  
 -  
-->
<refentry id="xpf_string">
  <refmeta>
    <refentrytitle>string</refentrytitle>
    <refmiscinfo>XPATH</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>string</refname>
    <refpurpose>Returns a string value of its argument.</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <funcsynopsis id="xpf_syn_string">
      <funcprototype id="xpf_proto_string">
        <funcdef>string <function>string</function></funcdef>
	<paramdef><optional><parameter>obj</parameter> any</optional></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>
  <refsect1 id="xpf_desc_string"><title>Description</title>
    <para>The string() function converts an object to a string as follows:</para>
    <itemizedlist mark="bullet" spacing="compact">
      <listitem><para>An empty sequence is converted to an empty string.</para></listitem>
      <listitem><para>
A nonempty node-set is converted to a string by returning the string-value of the first node in the node-set.
Note that the XPATH standard says that 'first' means 'first in document order' here, not 'first value returned'.
For almost all queries, there is no difference between these two orders;
it may be important only for node-sets calculated by so-called reverse-order axis.
Moreover, the rure of standard is senseless if node-set contains nodes from more than one document.
That is why the standard is violated here, intentionally.</para></listitem>
      <listitem><para>
A nonempty sequence which is not a node-set is converted to a string by returning the string-value of the first node in the sequence.</para></listitem>
      <listitem><para>A NaN number is converted to the string 'NaN'.</para></listitem>
      <listitem><para>Zero is converted to the string '0'.</para></listitem>
      <listitem><para>Positive infinity is converted to the string 'Infinity'</para></listitem>
      <listitem><para>Negative infinity is converted to the string '-Infinity'</para></listitem>
      <listitem><para>Integer number is represented in decimal form with no decimal point and no leading zeros, preceded by a minus sign '-' if the number is negative.</para></listitem>
      <listitem><para>
Non-integer number is represented in decimal form including a decimal point with at least one digit before the decimal point and at least one digit after the decimal point, preceded by a minus sign '-' if the number is negative;
there must be no leading zeros before the decimal point apart possibly from the one required digit immediately before the decimal point;
beyond the one required digit after the decimal point there will be be as many, but only as many, more digits as are needed to uniquely distinguish the number from all other IEEE 754 numeric values.</para></listitem>
      <listitem><para>The boolean false value is converted to the string 'false'. The boolean 'true' value is converted to the string 'true'.</para></listitem>
      <listitem><para>An object of a type other than the listed above is converted to a string in a way that is dependent on that type.</para></listitem>
    </itemizedlist>
    <para>If the argument is omitted, context node is converted instead as if it is a node-set of one element.</para>
  </refsect1>
  <refsect1 id="xpf_params_string"><title>Parameters</title>
    <refsect2><title>obj</title><para>Value to be converted into the string</para></refsect2>
  </refsect1>
  <refsect1 id="xpf_ret_string"><title>Return Types</title><para>String</para></refsect1>
  <refsect1 id="xpf_examples_string"><title>Examples</title>
    <example id="xpf_ex_string"><title>Examples</title>
<programlisting><![CDATA[
SQL> select xpath_eval ('string (//*)', xtree_doc ('<a>abc</a>')) ;
xpath_eval
VARCHAR
abc

SQL> select xpath_eval ('string (//title)', xtree_doc ('<doc><title>Simple test</title></doc>')) ;
xpath_eval
VARCHAR
Simple test

SQL> select xpath_eval ('string(.) div 21', xtree_doc ('<a>100</a>'))
xpath_eval
VARCHAR
4.761904761904762
No. of rows in result: 1


SQL> select xpath_eval ('string(//title) div 21', xtree_doc ('<a>100</a>'))
xpath_eval
VARCHAR
 0
No. of rows in result: 1

SQL> select xpath_eval ('string(//a) div 20', xtree_doc ('<a>100</a>'))
Query result:
xpath_eval
VARCHAR
 5
]]></programlisting>
    </example>
  </refsect1>
  <refsect1 id="xpf_seealso_string"><title>See Also</title>
    <para><link linkend="xpf_format_number">format_number()</link></para>
    <para><link linkend="xpf_serialize">serialize()</link></para>
    <para><link linkend="xpf_urlify">urlify()</link></para>
    <para><link linkend="xpf_concat">concat()</link></para>
  </refsect1>
</refentry>