Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Saxon中关闭xml头输出_Xml_Xpath_Saxon - Fatal编程技术网

在Saxon中关闭xml头输出

在Saxon中关闭xml头输出,xml,xpath,saxon,Xml,Xpath,Saxon,使用.NET版本的Saxon 9.4,我运行了如下命令行: Query.exe -s:myfile.xml -qs:/cruisecontrol/build/msbuild[@success='true']/project[1]/target[@name='GetLatestSource']/message[last()]/text() 我得到的结果是 <?xml version="1.0" encoding="UTF-8"?>375 375 如何关闭XML头(省略XML声明)

使用.NET版本的Saxon 9.4,我运行了如下命令行:

Query.exe -s:myfile.xml -qs:/cruisecontrol/build/msbuild[@success='true']/project[1]/target[@name='GetLatestSource']/message[last()]/text()
我得到的结果是

<?xml version="1.0" encoding="UTF-8"?>375
375
如何关闭XML头(省略XML声明),以便只获取
375
作为输出?我查过了,但也许我只是错过了它。

找到了

我需要添加
省略xml声明
选项:

Query.exe -s:myfile.xml -qs:"declare option saxon:output 'omit-xml-declaration=yes'; /cruisecontrol/build/msbuild[@success='true']/project[1]/target[@name='GetLatestSource']/message[last()]/text()"
这是实现这一点的一种方法。

基于from,还可以使用命令行参数

下面是使用Java的命令:

java -cp saxon9he.jar net.sf.saxon.Transform -s:mytemplate.xsl -xsl:myfile.xml !method=text
从命令行帮助中:

萨克森HE 9.8.0.11J来自萨克森卡
用法:参见
格式:net.sf.saxon.Transform options参数
可用选项:--a-catalog-config-cr-diag-dtd-ea-expand-explain-export-ext-im-init-it-jit-l-lib-license-m-nogo-now-o-opt-or-outval-p-quit-r-relocate-repeat-s-sa-scmin-strip-t-t-t-t-target-TB-threads-TJ-Tlevel-Tout-TP-traceout-tree-u-val-versionmsg-warnings-x-xi-xmlversion-xsd-xsl-xsl-y
使用-XYZ:?有关选项XYZ的详细信息
参数:

param=value Set stylesheet string parameter +param=filename Set stylesheet document parameter ?param=expression Set stylesheet parameter using XPath !param=value Set serialization parameter param=值集样式表字符串参数 +param=文件名集样式表文档参数 ?param=使用XPath的表达式集样式表参数 !param=值集序列化参数
您还可以直接从命令行设置序列化参数,例如!method=text(这与省略xml声明不同,它还可以防止\!method=text如果通过
saxon.serialize(saxon.transform(..)
(仅使用一个SEF)使用
saxon js
(js/Node)),则可以从SEF本身提取输出参数,并将其作为
serialize()的第二个参数传递(否则序列化程序将不知道/不遵守所需的输出配置,
忽略xml声明
等):
let-outConf=sef.C.find(C=>C.N==“output”).C.filter(C=>C.N==“property”).reduce((params,C)=>{params[C.name]=C.value==“yes”?true:C.value==“no”?false:C.value;return params;},{};let result=saxon.serialize(saxon.transform(..),outConf);