我正在使用 XML 编辑器 Pathology对于Mac。它基于Panthro ,XPath 3.0 在 Objective-C/Cocoa 中的开源实现。
我想对引用其他 XML 文件(“Bookstore2.xml”)的文件“Bookstore.xml”进行查询:
doc("Bookstore.xml")//Magazine[Title = doc("Bookstore2.xml")//Book/Title]
但是程序显示“调用未知函数:doc()”。如何引用其他 XML 文件?我错过了什么?
顺便说一句,我检查了其他答案,例如 this one 。但我没有弄清楚任何事情。
非常感谢。
最佳答案
这里是病理学的开发者。抱歉,但是 Panthro – 我自己开发并为 Pathology 提供支持的 XPath 引擎 – 不支持 doc()
函数。
我没有实现这个功能的最大原因是 Pathology 主要通过 Mac App Store 销售,因此根据苹果对 Mac App Store 应用程序相当严格的规则,它必须是一个“沙盒应用程序”。如果用户没有通过 GUI 进行直接干预,沙盒应用程序无法打开 Mac 上的任意文件,但这正是 doc()
函数的作用。
基本上,doc()
函数本质上与沙盒 Mac 应用程序的概念不兼容,因为 Panthro 的目的是为 Pathology 提供动力,而 Pathology 是通过 Mac 销售的 Mac 应用程序App Store 中,我避免实现 doc()
以避免这种固有的不兼容性。
我知道这不是一个非常令人满意的答案,但情况很困难。苹果的“沙盒”限制有利有弊。不幸的是,这是缺点之一。
关于xml - 如何在 XPath 3 查询中引用其他 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44065077/