Tehnologia informației

Parcurgeți parametrul de la xquery la xslt

Aș vrea să transform xml folosind xslt dar variabila importantă vine de la cerere. Am astfel de xquery:

let $transform := doc("projekt.xsl")
let $serialization-options := 'method=xml media-type=text/xml omit-xml-declaration=yes indent=no'
let $params := 

    
    
    
    
    
    


return 
    transform:transform($doc, $transform, $params, $serialization-options)

fișierul project.xsl este aici:

<?xml version="1.0" encoding="UTF-8"?>




    
    



    ..........

Aș dori să adăugați atributul "selectați" la:

 

cu valoarea $ topid specificată în xquery.

Am văzut ceva de genul asta i java aici: http: /www.techrepublic.com/article/pass-parameters-to-xsl-templates-programmatically/1044596 dar în xquery nu vrea muncă.

Eu folosesc exist db 1.4.1

Editare:

transform: transform este din spațiul de nume http://exist-db.org/xquery/transform

Official documentation is here: https://en.wikibooks.org/wiki/XQuery/XQuery_and_XSLT

0
namespace transform: transform este din modulul exist-db.org/xquery/transform Modificările documentației oficiale aici : en.wikibooks.org/wiki/XQuery/XQuery_and_XSLT
adăugat autor damik, sursa
transformă: transformarea nu este o caracteristică standard XQuery, este o extensie furnizată de implementarea XQuery pe care o utilizați. Așa că ar ajuta oamenii să spună ce înseamnă implementarea.
adăugat autor Michael Kay, sursa

2 răspunsuri

Nu sunt familiarizat cu acest API, dar nu știu de unde ai această idee:



Citirea mea a documentației este că dacă foaia de stil are un parametru numit topicid, atunci m-aș aștepta ca interogarea să treacă ca ceva


0
adăugat

în docul dvs. xslt trebuie să utilizați:








adică numele parametrului trebuie să fie egal cu cel definit în xquery. Puteți utiliza funcția selectare pentru a introduce o valoare implicită, dacă nu există niciun astfel de parametru (sau rulați xslt fără o solicitare, de exemplu, în scopuri de testare ...)

0
adăugat