Во-первых, процесс «преобразования строки в узел» обычно называется синтаксическим анализом, и вызов процесса по собственному имени может помочь найти правильное решение.
Вы находитесь в xsl:param
, что означает, что вы находитесь на границе / интерфейсе между процессором XSLT и внешним миром, и это, вероятно, означает, что у вас есть возможность выполнять анализ по обе стороны границы. Если вы не можете использовать функцию XSLT 3.0 parse-xml()
или функцию расширения Saxon, которая предшествует ей, то лучше всего выполнить синтаксический анализ в вызывающем приложении и предоставить результирующий узел в качестве значения параметра. .
Функция exsl: node-set () определена для преобразования «фрагмента дерева результатов» (не строки) в набор узлов. Я полагаю, что некоторые реализации этого сделают синтаксический анализ, если снабжены строкой, а не RTF, но это никогда не было верным для саксонской реализации. В течение многих лет у Saxon была функция расширения saxon: parse (), функциональность которой очень близка к fn:parse-xml()
.