我正在使用xquery读取Office 2007文档的XML文件。在这些文件中,还包括名称空间。我需要检索命名空间的节点。我编写了xquery来获取数据,如果我从源XML文件中删除名称空间,xquery结果集的其他内容为空,它就可以正常工作。想知道如何使用xquery 1.0从xml源文件中读取命名空间和值。 (我不确定xquery 1.0是否支持名称空间,而且我也必须在DTD中定义名称空间,以便通过从多个xml文件中读取数据来创建自定义输出xml文件。
答案 0 :(得分:-1)
尝试在XQuery prolog中定义默认命名空间:
declare default element namespace "<namespace-name>";
示例:
declare default element namespace "http://somewhere.com/foo";
您还可以声明其他名称空间,以便在查询中使用它们:
declare namespace <prefix> = "<namespace-name>";
示例:
declare namespace foo = "http://somewhere.com/foo";