我对为什么 XStylus 在运行有关后代轴的查询时返回此结果感到困惑。
我有以下 XML 文件:
<?xml version=”1.0”?>
<!DOCTYPE BookStore System “BookStore.dtd”>
<BookStore BookStoreID=”BS112” Name =”CheapBooks” Location=”London” OwnerName =”Mr. Black”>
<Books BookID =”BK111” Title=”Introduction to reading” Authors =”Ian Green”>
</Books>
<Books BookID =”BK112” Title=”Introduction to Sleeping” Authors =”Peter White”>
</Books>
<Staff StaffID =”S333” Name =”Ana Car”>
<Manager ManagerID=”MG444” Name = “Mrs White” Address = “150 Wide Road, London SW10”>
</Manager>
</Staff>
</BookStore>
该文档格式正确,并根据该工具进行了良好的验证。现在,我想找到 ManagerID 等于 MG444 的经理管理的员工。
我使用以下查询:
/child::BookStore/descendant:Staff[@ManageID='MG444']
我的理由是我正在寻找 BookStore 的子元素,该子元素具有 Staff 后代,该后代具有具有特定值的 ManagerID 属性。Stylus Studio 不返回任何内容。如果我跑
/child::BookStore/descendant:Staff
我得到了整个员工元素,而不仅仅是经理。为什么-后代不应该只查看后代,而不是当前节点并忽略属性?同样,为什么第一个查询不起作用?