XPath может только выбирать узлы, он не может записывать в файл.
В XPath 1.0 не существует стандартного способа ссылки на узлы одного выражения, принадлежащие более чем одному документу XML.,Если языком программирования, на котором размещается XPath, является XSLT, то узлы документов трех документов XML могут быть в трех отдельных xsl:variable
s: $doc1
, $doc2
и $doc3
.
$doc1//whoopdee | $doc2//whoopdee | $doc3//whoopdee
В качестве альтернативы можно напрямую использовать функцию XSLT document()
:
document('file1.xml')//whoopdee
| document('file2.xml')//whoopdee
| document('file3.xml')//whoopdee
Для вывода результата любого выражения XPath, используя XSLT, можно просто написать:
<xsl:copy-of select="$doc1//whoopdee | $doc2//whoopdee | $doc3//whoopdee">
или
<xsl:copy-of select=
"document('file1.xml')//whoopdee
| document('file2.xml')//whoopdee
| document('file3.xml')//whoopdee
">
В XPath 2.0 можно использовать стандартную функцию doc()
и не будет зависеть от хоста XPath.
Command-line :
Можно использовать любой XSLT-процессор, который позволяет создавать экземпляры командной строки.Большинство процессоров XSLT допускают это.Они также позволяют передавать простые параметры в командной строке - обычно в формате name=value
.Наконец, большинство процессоров XSLT разрешают указывать конечный файл для результата в качестве опции.Вот ссылка на документацию Saxon о его использовании в командной строке:
http://www.saxonica.com/documentation/using-xsl/commandline.html