我在为SiteCoreCMS系统执行的xpath查询有问题。
此查询工作正常:
/根目录/内容/元数据/提示/*
但是当我尝试这个的时候:
/根目录/内容/元数据/提示/*[@someattribute='somekey']
我得到一个错误,上面写着“在位置22处期望字符串结束”,这就是找到破折号的地方。我觉得破折号在XML中不是一个特殊的字符…我在这里做错什么了吗?我需要以某种方式对其进行编码吗?或者这是xpath解析器中的错误?有什么建议的解决方法吗?
改变这一点:
/root/content/Meta-Data/Tips/*[@SomeAttribute='somekey']
对此:
/root/content/#Meta-Data#/Tips/*[@SomeAttribute='somekey']
根据 XML spec 对于标记名中的字符,连字符应为有效字符。我已经用 this site 并发现它有助于与其他解析器的结果进行比较。