Tag: xquery

如何在命令行中使用带有Saxon-HE的XPath解析HTML?

我使用saxon HE 9.6,它非常适合在解析格式良好的XML文件时使用XPath 3。 但我想知道如何将expath-http-client (或任何其他工作解决方案)与Saxon结合起来, 以便能够解析realLife©®™(可能已损坏)的HTML。 (Java不是我更好的技能)。 我搜索谷歌很多小时没有任何工作解决方案。 我试过类似的东西: xquery_file.xsl: xquery version “1.0”; declare namespace http=”http://expath.org/ns/http-client”; let $url := ‘http://stackoverflow.com’ let $response := http:send-request( ) return {$response} Shell命令取自expath-http-client-saxon-0.10.0的README saxon –repo /usr/share/java/expath/repo -xsl:sample/simple-get.xsl -it:main 要么 saxon –repo /usr/share/java/expath/repo -xsl:xquery_file.xsl -it:main 没有成功。 我得到: Transformation failed: Unknown configuration property http://saxon.sf.net/feature/repo 理想情况下,我最后要做的是直接从命令行查询一个URL,而不是XQuery文件,而是一个XPath表达式(如果可能的话)。 我很确定那里的一些XML / Java / XPath专家有我正在寻找的解决方案。 /usr/share/java/expath/repo包含: […]

解析XML文件以获取所有命名空间信息

我希望能够从给定的XML文件中获取所有命名空间信息。 例如,如果输入XML文件类似于: 1 bar foo 00.00 USD 11.11 AUD 2 some name some description 00.01 USD 我希望输出看起来像这样(在这种情况下以逗号分隔): create, ns1, http://predic8.com/wsdl/material/ArticleService/1/ article, ns1, http://predic8.com/material/1/ price, ns1, http://predic8.com/material/1/ id, ns1, http://predic8.com/material/1/ 重要笔记: 重要的是我们还要考虑在特定命名空间内定义的子节点,但其定义可以在更高节点处定义。 例如,我们仍然想要获取节点ns1:id ,我们需要追溯到父节点ns1:article以发现命名空间url是xmlns:ns1=’http://predic8.com/material/1/ 我在Java中实现,所以我不介意基于Java的解决方案,甚至基于XSLT的解决方案似乎都是合适的。

java日期格式与xquery xs:日期格式不兼容,如何修复?

在java中,当使用带有模式的SimpleDateFormat时: yyyy-MM-dd’T’HH:mm:ss.SSSZ 日期输出为: “2002-02-01T18:18:42.703-0700” 在xquery中,当使用xs:dateTime函数时,它会给出错误: “Invalid lexical value [err:FORG0001]” 与上述日期。 为了使xquery正确解析,日期需要如下所示: “2002-02-01T18:18:42.703-07:00” – node the ‘:’ 3rd position from end of string 它基于ISO 8601,而Java日期则基于RFC 822标准。 我希望能够在Java中轻松指定时区,以便输出xquery想要的方式。 谢谢!

如何从一组XPath表达式生成XML文件?

我希望能够在给定一组XPath映射的情况下生成完整的XML文件。 输入可以在两个映射中指定:(1)一个列出XPath表达式和值; (2)定义适当名称空间的另一个。 /create/article[1]/id => 1 /create/article[1]/description => bar /create/article[1]/name[1] => foo /create/article[1]/price[1]/amount => 00.00 /create/article[1]/price[1]/currency => USD /create/article[2]/id => 2 /create/article[2]/description => some name /create/article[2]/name[1] => some description /create/article[2]/price[1]/amount => 00.01 /create/article[2]/price[1]/currency => USD 对于名称空间: /create => xmlns:ns1=’http://predic8.com/wsdl/material/ArticleService/1/ /create/article => xmlns:ns1=’http://predic8.com/material/1/’ /create/article/price => xmlns:ns1=’http://predic8.com/common/1/’ /create/article/id => xmlns:ns1=’http://predic8.com/material/1/’ 另请注意,我也必须处理XPath 属性表达式。 例如:我还应该能够处理属性,例如: /create/article/@type => richtext 最终的输出应该是这样的: […]