【发布时间】:2012-03-08 09:26:04
【问题描述】:
使用 Saxon 9.4 的 .NET 版本,我运行如下命令行:
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
我怎样才能关闭 XML 标头(省略 XML 声明),以便得到 375 作为输出?我检查了the documentation,但也许我只是想念它。
【问题讨论】:
-
如果通过
saxon.serialize(saxon.transform(..))使用saxon-js(JS/Node)(只有一个SEF),您可以从SEF 本身提取输出参数并将它们作为serialize()的第二个参数传递(否则序列化程序将不知道/尊重所需的输出配置,omit-xml-declaration等):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);