Saxon XPath 错误 - "cannot serialize attribute"
Saxon XPath error - "cannot serialize attribute"
当我 运行 XQuery 命令行时,只要结果是一个元素,它就可以工作。
当我扩展 XQuery 以仅获取属性值时,它失败并出现以下错误:
SENR0001: Cannot serialize a free-standing attribute node (net.sf.saxon.om.NameOfNode)
所以,这行得通
java -cp ...Saxon-HE-9.9.0-1.jar net.sf.saxon.Query
-s:AnyXMLFileAvailable.xml -qs:/
这失败了:
java -cp ...Saxon-HE-9.9.0-1.jar net.sf.saxon.Query
s:AnyXMLFileAvailable.xml -qs://@*
只要XML中的任何地方至少有一个属性,这个命令就会失败并出现上述错误
我相信这可以通过允许使用
的许可 Saxon 来解决
-outval:recover
切换。还有别的办法吗?
当您从命令行运行查询时,默认的序列化方法是"xml";出于兼容性原因,我一直不愿意更改它。当您尝试序列化某些结果(包括映射、数组和属性节点)时,"xml" 序列化方法失败。
如果您在命令行上设置 !method=adaptive
(如果使用 bash,则将“!”转义为“\”),那么序列化永远不会失败,它会产生某种表示形式查询结果。如果结果是一个属性,它将把它表示为 name="value"
,这可能是也可能不是你想要的。如果您实际上只想要属性的字符串值,那么您需要在查询中提取它,例如通过使用 string()
或 data()
函数。
-outval
选项无关紧要,它与查询结果的模式验证有关。
当我 运行 XQuery 命令行时,只要结果是一个元素,它就可以工作。
当我扩展 XQuery 以仅获取属性值时,它失败并出现以下错误:
SENR0001: Cannot serialize a free-standing attribute node (net.sf.saxon.om.NameOfNode)
所以,这行得通
java -cp ...Saxon-HE-9.9.0-1.jar net.sf.saxon.Query
-s:AnyXMLFileAvailable.xml -qs:/
这失败了:
java -cp ...Saxon-HE-9.9.0-1.jar net.sf.saxon.Query
s:AnyXMLFileAvailable.xml -qs://@*
只要XML中的任何地方至少有一个属性,这个命令就会失败并出现上述错误
我相信这可以通过允许使用
的许可 Saxon 来解决 -outval:recover
切换。还有别的办法吗?
当您从命令行运行查询时,默认的序列化方法是"xml";出于兼容性原因,我一直不愿意更改它。当您尝试序列化某些结果(包括映射、数组和属性节点)时,"xml" 序列化方法失败。
如果您在命令行上设置 !method=adaptive
(如果使用 bash,则将“!”转义为“\”),那么序列化永远不会失败,它会产生某种表示形式查询结果。如果结果是一个属性,它将把它表示为 name="value"
,这可能是也可能不是你想要的。如果您实际上只想要属性的字符串值,那么您需要在查询中提取它,例如通过使用 string()
或 data()
函数。
-outval
选项无关紧要,它与查询结果的模式验证有关。