Funciones XPath/XQuery: de cadena

www.altova.com Expandir/Contraer todos Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Anexos > Información sobre motores > Funciones XSTL y XPath/XQuery > Funciones de extensión de Altova >

Funciones XPath/XQuery: de cadena

Las funciones de extensión de Altova para trabajar con cadenas pueden utilizarse en expresiones XPath y XQuery y ofrecen funciones adicionales para el procesamiento de datos. Estas funciones se pueden usar con los motores XPath 3.0 y XQuery 3.0 de Altova. Están disponibles en contextos XPath/XQuery.

 

Nota sobre el nombre de las funciones y lenguajes

Puede utilizar todas las funciones de extensión de Altova en sus expresiones XPath/XQuery. Con ellas conseguirá funciones adicionales no disponibles en la biblioteca de funciones estándar de XPath, XQuery y XSLT. Las funciones de extensión de Altova están en el espacio de nombres http://www.altova.com/xslt-extensions y en esta sección se presentan con el prefijo, que se supone estará enlazado al espacio de nombres señalado. Tenga en cuenta que en futuras versiones del producto algunas funciones pueden dejar de ser compatibles o su comportamiento puede cambiar. Por tanto, consulte siempre la documentación del producto para conocer el funcionamiento de estas funciones en cada versión del producto.

 

Funciones XPath

(en expresiones XPath en XSLT):

XP1 XP2 XP3.1

Funciones XSLT

(en expresiones XPath en XSLT):

Xslt1 XSLT2 XSLT3

Funciones XQuery

(en expresiones XQuery en XQuery):

XQ1 XQ3.1

 

 

 

Haga clic para expandir/contraercamel-case [altova:]

altova:camel-case(CadenaEntrada como xs:string) como xs:string     XP3.1 XQ3.1

Devuelve la cadena de entrada CadenaEntrada escrita en CamelCase. La cadena se analiza usando la expresión regular '\s' (que es la forma abreviada del carácter espacio en blanco). El primer carácter que no sea un espacio en blanco situado después de un espacio en blanco o de una secuencia de espacios en blanco consecutivos se pondrá en mayúsculas. El primer carácter de la cadena de salida se pondrá en mayúsculas.

 

altova:camel-case("max") devuelve Max
altova:camel-case("max max") devuelve Max Max
altova:camel-case("file01.xml") devuelve File01.xml
altova:camel-case("file01.xml file02.xml") devuelve File01.xml File02.xml
altova:camel-case("file01.xml   file02.xml") devuelve File01.xml   File02.xml
altova:camel-case("file01.xml -file02.xml") devuelve File01.xml -file02.xml

 

altova:camel-case(CadenaEntrada como xs:stringCaracteresDivisión como xs:stringEsExpReg como xs:boolean) como xs:string     XP3.1 XQ3.1

Devuelve la cadena de entrada CadenaEntrada escrita en CamelCase usando los CaracteresDivisón para determinar qué caracteres desencadenan el siguiente uso de mayúsculas. El argumento CaracteresDivisón se usa como expresión regular cuando EsExpReg = true() o como caracteres planos cuando r EsExpReg = false(). El primer carácter de la cadensa de salida se escribe con mayúsculas.

 

altova:camel-case("setname getname", "set|get", true()) devuelve setName getName
altova:camel-case("altova\documents\testcases", "\", false()) devuelve Altova\Documents\Testcases

 

 

Haga clic para expandir/contraerchar [altova:]

altova:char(Posición as xs:integer) como xs:string     XP3.1 XQ3.1

Devuelve una cadena que contiene el carácter que está en la posición indicada por el argumento Posición en la cadena que se obtiene al convertir el valor del elemento de contexto en xs:string. La cadena resultante estará vacía si en la posición indicada no existe ningún carácter.

 

Si el elemento de contexto es 1234ABCD:

 

altova:char(2) devuelve 2
altova:char(5) devuelve A
altova:char(9) devuelve la cadena vacía
altova:char(-2) devuelve la cadena vacía

 

altova:char(CadenaEntrada as xs:stringPosición as xs:integer) como xs:string     XP3.1 XQ3.1

Devuelve una cadena que contiene el carácter que está en la posición indicada por el argumento Posición en la cadena dada por el argumento CadenaEntrada. La cadena resultante estará vacía si en la posición indicada no existe ningún carácter.

 

altova:char("2014-01-15", 5) devuelve -
altova:char("USA", 1) devuelve U
altova:char("USA", 1) devuelve la cadena vacía
altova:char("USA", -2) devuelve la cadena vacía

 

 

Click to expand/collapsecreate-hash-from-string[altova:]

altova:create-hash-from-string(InputString como xs:string) como xs:string     XP2 XQ1 XP3.1 XQ3.1

altova:create-hash-from-string(InputString como xs:string, HashAlgo as xs:string) como xs:string     XP2 XQ1 XP3.1 XQ3.1

Genera una cadena hash a partir de InputString usando el algoritmo de hash especificado por el argumento HashAlgo. Se pueden usar los siguientes algoritmos de hash (en mayúsculas o minúsculas): MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512. Si no se especifica el segundo argumento (véase la primera instrucción) se usa el algoritmo de hash SHA-256.

 

hmtoggle_plus0Ejemplos
altova:create-hash-from-string('abc') devuelve una cadena hash generada usando el algoritmo de hash SHA-256.
altova:create-hash-from-string('abc', 'md5') devuelve una cadena hash generada usando el algoritmo de hash MD5.
altova:create-hash-from-string('abc', 'MD5') devuelve una cadena hash generada usando el algoritmo de hash MD5.

 

 

Haga clic para expandir/contraerfirst-chars [altova:]

altova:first-chars(X as xs:integer) como xs:string     XP3.1 XQ3.1

Devuelve una cadena que contiene los X primeros caracteres de la cadena que se obtiene al convertir el valor del elemento de contexto en xs:string.

 

Si el elemento de contexto es 1234ABCD:

 

altova:first-chars(2) devuelve 12
altova:first-chars(5) devuelve 1234A
altova:first-chars(9) devuelve 1234ABCD

 

altova:first-chars(CadenaEntrada as xs:stringX as xs:integer) como xs:string     XP3.1 XQ3.1

Devuelve una cadena que contiene los X primeros caracteres de la cadena dada como argumento CadenaEntrada.

 

altova:first-chars("2014-01-15", 5) devuelve 2014-
altova:first-chars("USA", 1) devuelve U

 

 

Click to expand/collapseformat-string [altova:]

altova:format-string(InputString as xs:stringFormatSequence as item()*) como xs:string     XP3.1 XQ3.1

La cadena de entrada (primer argumento) contiene parámetros posicionales (%1, %2, etc). Cada parámetro es reemplazado por el elemento cadena ubicado en la posición correspondiente de la secuencia de formato (enviada como segundo argumento). Por tanto, el primer elemento de la secuencia de formato reemplaza al parámetro posicional %1, el segundo elemento reemplaza a %2 y así sucesivamente. La función devuelve esta secuencia con formato que contiene los elementos de reemplazo. Si no existe una cadena para alguno de los parámetros posicionales, entonces se devuelve ese mismo parámetro posicional. Esto ocurre cuando el índice de un parámetro posicional es mayor que el número de elementos de la secuencia de formato.

hmtoggle_plus0Ejemplos
altova:format-string('Hello %1, %2, %3', ('Jane','John','Joe')) devuelve "Hello Jane, John, Joe"
altova:format-string('Hello %1, %2, %3', ('Jane','John','Joe''Tom')) devuelve "Hello Jane, John, Joe"
altova:format-string('Hello %1, %2, %4', ('Jane','John','Joe''Tom')) devuelve "Hello Jane, John, Tom"
altova:format-string('Hello %1, %2, %4', ('Jane','John','Joe')) devuelve "Hello Jane, John, %4"

 

 

Haga clic para expandir/contraerlast-chars [altova:]

altova:last-chars(X as xs:integer) como xs:string     XP3.1 XQ3.1

Devuelve una cadena que contiene los X últimos caracteres de la cadena que se obtiene al convertir el valor del elemento de contexto en xs:string.

 

Si el elemento de contexto es 1234ABCD:

 

altova:last-chars(2) devuelve CD
altova:last-chars(5) devuelve 4ABCD
altova:last-chars(9) devuelve 1234ABCD

 

altova:last-chars(CadenaEntrada as xs:stringX as xs:integer) como xs:string     XP3.1 XQ3.1

Devuelve una cadena que contiene los X últimos caracteres de la cadena dada como argumento CadenaEntrada.

 

altova:last-chars("2014-01-15", 5) devuelve 01-15-
altova:last-chars("USA", 10) devuelve USA

 

 

Clic para expandir/contraerpad-string-left [altova:]

altova:pad-string-left(CadenaParaRellenar como xs:string, LongitudCadena como xs:integer, CarácterRelleno como xs:string) como xs:string     XP3.1 XQ3.1

El argumento CarácterRelleno es un solo carácter. Se añade a la izquierda de la cadena para aumentar el número de caracteres de la CadenaParaRellenar, de modo que este número equivalga al valor entero del argumento LongitudCadena. El argumento LongitudCadena puede tener cualquier valor entero (positivo o negativo), pero el relleno solo se lleva a cabo si el valor de LongitudCadena es mayor que el número de caracteres de CadenaParaRellenar. Si CadenaParaRellenar tiene más caracteres que el valor de LongitudCadena, entonces CadenaParaRellenar se deja como está.

 

altova:pad-string-left('AP', 1, 'Z') devuelve 'AP'
altova:pad-string-left('AP', 2, 'Z') devuelve 'AP'
altova:pad-string-left('AP', 3, 'Z') devuelve 'ZAP'
altova:pad-string-left('AP', 4, 'Z') devuelve 'ZZAP'
altova:pad-string-left('AP', -3, 'Z') devuelve 'AP'
altova:pad-string-left('AP', 3, 'YZ') devuelve un error indicando que el carácter de relleno es demasiado largo.

 

 

Clic para expandir/contraerpad-string-right [altova:]

altova:pad-string-right(CadenaParaRellenar como xs:string, LongitudCadena como xs:integer, CarácterRelleno como xs:string) como xs:string     XP3.1 XQ3.1

El argumento CarácterRelleno es un solo carácter. Se añade a la derecha de la cadena para aumentar el número de caracteres de la CadenaParaRellenar, de modo que este número equivalga al valor entero del argumento LongitudCadena. El argumento LongitudCadena puede tener cualquier valor entero (positivo o negativo), pero el relleno solo se lleva a cabo si el valor de LongitudCadena es mayor que el número de caracteres de CadenaParaRellenar. Si CadenaParaRellenar tiene más caracteres que el valor de LongitudCadena, entonces CadenaParaRellenar se deja como está.

 

altova:pad-string-right('AP', 1, 'Z') devuelve 'AP'
altova:pad-string-right('AP', 2, 'Z') devuelve 'AP'
altova:pad-string-right('AP', 3, 'Z') devuelve 'APZ'
altova:pad-string-right('AP', 4, 'Z') devuelve 'APZZ'
altova:pad-string-right('AP', -3, 'Z') devuelve 'AP'
altova:pad-string-right('AP', 3, 'YZ') devuelve un error indicando que el carácter de relleno es demasiado largo.

 

 

Haga clic para expandir/contraerrepeat-string [altova:]

altova:repeat-string(CadenaEntrada as xs:string, Repeticiones as xs:integer) como xs:string     XP2 XQ1 XP3.1 XQ3.1

Genera una cadena que está compuesta por el primer argumento CadenaEntrada repetida tantas veces como indique el argumento Repeticiones.

 

altova:repeat-string("Altova #", 3)

devuelve Altova #Altova #Altova #"

 

 

Haga clic para ampliar/expandirsubstring-after-last [altova:]

altova:substring-after-last(CadenaPrincipal as xs:string, CadenaPrueba as xs:string) como xs:string     XP3.1 XQ3.1

Si CadenaPrueba se encuentra en CadenaPrincipal, la función devuelve la subcadena que aparece después de CadenaPrueba en CadenaPrincipal. Si CadenaPrueba no está en CadenaPrincipal, entonces devuelve la cadena vacía. Si CadenaPrueba es una cadena vacía, entonces devuelve la CadenaPrincipal entera. Si CadenaPrueba aparece varias veces en CadenaPrincipal, la función devuelve la subcadena que aparece después de la última CadenaPrueba.

altova:substring-after-last('ABCDEFGH', 'B') devuelve 'CDEFGH'
altova:substring-after-last('ABCDEFGH', 'BC') devuelve 'DEFGH'
altova:substring-after-last('ABCDEFGH', 'BD') devuelve ''
altova:substring-after-last('ABCDEFGH', 'Z') devuelve ''
altova:substring-after-last('ABCDEFGH', '') devuelve 'ABCDEFGH'
altova:substring-after-last('ABCD-ABCD', 'B') devuelve 'CD'
altova:substring-after-last('ABCD-ABCD-ABCD', 'BCD') devuelve ''

 

 

Click to expand/collapsesubstring-before-last [altova:]

altova:substring-before-last(CadenaPrincipal as xs:string, CadenaPrueba as xs:string) como xs:string     XP3.1 XQ3.1

Si CadenaPrueba se encuentra en CadenaPrincipal, la función devuelve la subcadena que aparece después de CadenaPrueba en CadenaPrincipal. Si CadenaPrueba no está en CadenaPrincipal, entonces devuelve la cadena vacía. Si CadenaPrueba es una cadena vacía, entonces devuelve la CadenaPrincipal entera. Si CadenaPrueba aparece varias veces en CadenaPrincipal, la función devuelve la subcadena que aparece antes de la última CadenaPrueba.

altova:substring-before-last('ABCDEFGH', 'B') devuelve 'A'
altova:substring-before-last('ABCDEFGH', 'BC') devuelve 'A'
altova:substring-before-last('ABCDEFGH', 'BD') devuelve ''
altova:substring-before-last('ABCDEFGH', 'Z') devuelve ''
altova:substring-before-last('ABCDEFGH', '') devuelve ''
altova:substring-before-last('ABCD-ABCD', 'B') devuelve 'ABCD-A'
altova:substring-before-last('ABCD-ABCD-ABCD', 'ABCD') devuelve 'ABCD-ABCD-'

 

 

Haga clic para expandir/contraersubstring-pos [altova:]

altova:substring-pos(Cadena as xs:stringCadenaBúsqueda as xs:string) como xs:integer     XP3.1 XQ3.1

Devuelve la posición de carácter de la primera instancia de CadenaBúsqueda en Cadena. La posición de carácter se devuelve como número entero. El primer carácter de CadenaBúsqueda tiene la posición 1. Si CadenaBúsqueda no aparece dentro de Cadena, la función devuelve el entero 0. Para buscar la segunda instancia de CadenaBúsqueda, etc. use la otra firma de esta función.

altova:substring-pos('Altova', 'to') devuelve 3
altova:substring-pos('Altova', 'tov') devuelve 3
altova:substring-pos('Altova', 'tv') devuelve 0
altova:substring-pos('AltovaAltova', 'to') devuelve 3

 

altova:substring-pos(Cadena as xs:stringCadenaBúsqueda as xs:stringEntero as xs:integer) como xs:integer     XP3.1 XQ3.1

Devuelve la posición de carácter de CadenaBúsqueda en Cadena. La búsqueda de CadenaBúsqueda empieza en la posición de carácter dada por el argumento Entero (es decir, no se busca en la subcadena anterior a esta posición). El entero devuelto, sin embargo, es la posición que la cadena encontrada tiene en Cadena. Esta firma es muy práctica si quiere buscar la segunda posición, etc. de una cadena que aparece varias veces dentro de Cadena. Si CadenaBúsqueda no aparece en Cadena, la función devuelve el entero 0.

altova:substring-pos('Altova', 'to', 1) devuelve 3
altova:substring-pos('Altova', 'to', 3) devuelve 3
altova:substring-pos('Altova', 'to', 4) devuelve 0
altova:substring-pos('Altova-Altova', 'to', 0) devuelve 3
altova:substring-pos('Altova-Altova', 'to', 4) devuelve 10

 

 

Haga clic para expandir/contraersubstring-pos [altova:]

altova:substring-pos(Cadena as xs:stringCadenaBúsqueda as xs:string) como xs:integer     XP3.1 XQ3.1

Devuelve la posición de carácter de la primera instancia de CadenaBúsqueda en Cadena. La posición de carácter se devuelve como número entero. El primer carácter de CadenaBúsqueda tiene la posición 1. Si CadenaBúsqueda no aparece dentro de Cadena, la función devuelve el entero 0. Para buscar la segunda instancia de CadenaBúsqueda, etc. use la otra firma de esta función.

altova:substring-pos('Altova', 'to') devuelve 3
altova:substring-pos('Altova', 'tov') devuelve 3
altova:substring-pos('Altova', 'tv') devuelve 0
altova:substring-pos('AltovaAltova', 'to') devuelve 3

 

altova:substring-pos(Cadena as xs:stringCadenaBúsqueda as xs:stringEntero as xs:integer) como xs:integer     XP3.1 XQ3.1

Devuelve la posición de carácter de CadenaBúsqueda en Cadena. La búsqueda de CadenaBúsqueda empieza en la posición de carácter dada por el argumento Entero (es decir, no se busca en la subcadena anterior a esta posición). El entero devuelto, sin embargo, es la posición que la cadena encontrada tiene en Cadena. Esta firma es muy práctica si quiere buscar la segunda posición, etc. de una cadena que aparece varias veces dentro de Cadena. Si CadenaBúsqueda no aparece en Cadena, la función devuelve el entero 0.

altova:substring-pos('Altova', 'to', 1) devuelve 3
altova:substring-pos('Altova', 'to', 3) devuelve 3
altova:substring-pos('Altova', 'to', 4) devuelve 0
altova:substring-pos('Altova-Altova', 'to', 0) devuelve 3
altova:substring-pos('Altova-Altova', 'to', 4) devuelve 10

 

 

Haga clic para expandir/contraertrim-string [altova:]

altova:trim-string(CadenaEntrada as xs:string) como xs:string     XP3.1 XQ3.1

Esta función toma un argumento xs:string, quita los espacios en blanco iniciales y finales y devuelve un xs:string "recortado".

altova:trim-string("   Hello World   ")) devuelve "Hello World"
altova:trim-string("Hello World   ")) devuelve "Hello World"
altova:trim-string("   Hello World")) devuelve "Hello World"
altova:trim-string("Hello World")) devuelve "Hello World"
altova:trim-string("Hello   World")) devuelve "Hello   World"

 

 

Haga clic para expandir/contraertrim-string-left [altova:]

altova:trim-string-left(CadenaEntrada as xs:string) como xs:string     XP3.1 XQ3.1

Esta función toma un argumento xs:string, quita los espacios en blanco iniciales y devuelve un xs:string recortado por la izquierda.

altova:trim-string-left("   Hello World   ")) devuelve "Hello World   "
altova:trim-string-left("Hello World   ")) devuelve "Hello World   "
altova:trim-string-left("   Hello World")) devuelve "Hello World"
altova:trim-string-left("Hello World")) devuelve "Hello World"
altova:trim-string-left("Hello   World")) devuelve "Hello   World"

 

 

Haga clic para expandir/contraertrim-string-right [altova:]

altova:trim-string-right(CadenaEntrada as xs:string) como xs:string     XP3.1 XQ3.1

Esta función toma un argumento xs:string, quita los espacios en blanco finales y devuelve una cadena xs:string recortada por la derecha.

altova:trim-string-right("   Hello World   ")) devuelve "   Hello World"
altova:trim-string-right("Hello World   ")) devuelve "Hello World"
altova:trim-string-right("   Hello World")) devuelve "   Hello World"
altova:trim-string-right("Hello World")) devuelve "Hello World"
altova:trim-string-right("Hello   World")) devuelve "Hello   World"

 

 

 


© 2019 Altova GmbH