【问题标题】:Fetch remote XML with saxon使用 saxon 获取远程 XML
【发布时间】:2019-01-02 18:09:19
【问题描述】:

我如何从撒克逊人fetch 远程XML

thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ java -cp /usr/share/java/Saxon-HE.jar net.sf.saxon.Query fetch.note.text.xq 
Static error on line 2 at column 2 of file:/home/thufir/saxon/fetch.note.text.xq near {...ww.w3schools.com/xml/note.x...} 
  XPST0081: Namespace prefix 'fetch' has not been declared
Static error(s) in query
thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ cat fetch.note.text.xq 

fetch:xml("https://www.w3schools.com/xml/note.xml", map { 'chop': true() })


thufir@dur:~/saxon$ 

适用于BaseX

简单的hello worldruns好的:

thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ java -cp /usr/share/java/Saxon-HE.jar net.sf.saxon.Query test.xq 
<?xml version="1.0" encoding="UTF-8"?><results><message>Hello World!</message></results>thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ 

可能expath 提供这个functionality,也许?或者我应该将xslt 用于fetching

【问题讨论】:

    标签: java xml command-line-interface sax saxon


    【解决方案1】:

    使用标准 XPath 函数,例如 doc('https://www.w3schools.com/xml/note.xml')。 BaseX 的fetch 等处理器特定模块通常不可移植。

    【讨论】:

    • 完全正确:标准 XPath。谢谢。
    • 我不知道你为什么编辑你的问题现在询问我建议的 doc 函数,我建议的 XQuery 代码如我的答案所示:doc('https://www.w3schools.com/xml/note.xml')。因此,您的 XQuery 文件(例如 foo.xq)将包含该代码,然后您将像以前一样调用 Saxon。例如java -cp /usr/share/java/Saxon-HE.jar net.sf.saxon.Query foo.xq.
    • 我用java -jar .. 运行它,它被吐了。以为我的查​​询错误,但这是我调用Saxon 的方式。使用问题。我试图通过编辑来缩小问题的范围。我会把它改回来以供参考——也许它会帮助别人:)
    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多