Xml 在xquery中未获得正确的输出
我正在使用两个xml文件——“Department.xml”和“Employee.xml” Department.xmlXml 在xquery中未获得正确的输出,xml,xquery,Xml,Xquery,我正在使用两个xml文件——“Department.xml”和“Employee.xml” Department.xml <DeptList xsi:noNamespaceSchemaLocation="officeSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Department> <deptName>mech</deptName>
<DeptList xsi:noNamespaceSchemaLocation="officeSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Department>
<deptName>mech</deptName>
<deptNo>module1</deptNo>
<deptManagerSSN>31001</deptManagerSSN>
<deptManagerStartDate>2013-01-26</deptManagerStartDate>
<deptLocation>near xyz road</deptLocation>
</Department>
<Department>
<deptName>it</deptName>
<deptNo>module2</deptNo>
<deptManagerSSN>32001</deptManagerSSN>
<deptManagerStartDate>2013-04-15</deptManagerStartDate>
<deptLocation>near wt road</deptLocation>
</Department>
</DeptList>
<EmpList xsi:noNamespaceSchemaLocation="officeSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Employee>
<empName>Ramesh</empName>
<empSSN>31001</empSSN>
<empSex>Male</empSex>
<empSalary>57000</empSalary>
<empBirthDate>1988-03-12</empBirthDate>
<empDeptNo>module1</empDeptNo>
<empSupervisorSSN>31001</empSupervisorSSN>
<empAddress>3-f, x.y.z colony</empAddress>
<empWorksOn>proj01</empWorksOn>
</Employee>
<Employee>
<empName>Raj</empName>
<empSSN>31002</empSSN>
<empSex>Male </empSex>
<empSalary>40000</empSalary>
<empBirthDate>1989-03-30</empBirthDate>
<empDeptNo>Module1</empDeptNo>
<empSupervisorSSN>31001</empSupervisorSSN>
<empAddress>6-A, w.t.c. colony
</empAddress>
<empWorksOn>proj01</empWorksOn>
</Employee>
</EmpList>
机械
模块1
31001
2013-01-26
近xyz路
信息技术
模2
32001
2013-04-15
近东涌道
Employee.xml
<DeptList xsi:noNamespaceSchemaLocation="officeSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Department>
<deptName>mech</deptName>
<deptNo>module1</deptNo>
<deptManagerSSN>31001</deptManagerSSN>
<deptManagerStartDate>2013-01-26</deptManagerStartDate>
<deptLocation>near xyz road</deptLocation>
</Department>
<Department>
<deptName>it</deptName>
<deptNo>module2</deptNo>
<deptManagerSSN>32001</deptManagerSSN>
<deptManagerStartDate>2013-04-15</deptManagerStartDate>
<deptLocation>near wt road</deptLocation>
</Department>
</DeptList>
<EmpList xsi:noNamespaceSchemaLocation="officeSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Employee>
<empName>Ramesh</empName>
<empSSN>31001</empSSN>
<empSex>Male</empSex>
<empSalary>57000</empSalary>
<empBirthDate>1988-03-12</empBirthDate>
<empDeptNo>module1</empDeptNo>
<empSupervisorSSN>31001</empSupervisorSSN>
<empAddress>3-f, x.y.z colony</empAddress>
<empWorksOn>proj01</empWorksOn>
</Employee>
<Employee>
<empName>Raj</empName>
<empSSN>31002</empSSN>
<empSex>Male </empSex>
<empSalary>40000</empSalary>
<empBirthDate>1989-03-30</empBirthDate>
<empDeptNo>Module1</empDeptNo>
<empSupervisorSSN>31001</empSupervisorSSN>
<empAddress>6-A, w.t.c. colony
</empAddress>
<empWorksOn>proj01</empWorksOn>
</Employee>
</EmpList>
拉梅什
31001
男性的
57000
1988-03-12
模块1
31001
3-f,x.y.z菌落
proj01
拉吉
31002
男性的
40000
1989-03-30
模块1
31001
6-A,w.t.c.殖民地
proj01
我想要的是,如果“deptManagerSSN”等于“empSSN”,则打印“empName”,否则打印“deptName”。为此,我编写了以下查询:
for $x in doc("C:/Users/Abhay/labWork/Department.xml")/DeptList/Department,
$y in doc("C:/Users/Abhay/labWork/Department.xml")/EmpList/Employee
return if(data($x/deptManagerSSN)=data($y/empSSN))
then <text1>{data($y/emptName)}</text1>
else <text1>{data($x/deptName)}</text1>
文件中的$x(“C:/Users/Abhay/labWork/Department.xml”)/DeptList/Department,
文档中的$y(“C:/Users/Abhay/labWork/Department.xml”)/employist/Employee
如果(数据($x/deptManagerSSN)=数据($y/empSSN))返回
然后{data($y/emptName)}
else{data($x/deptName)}
但我没有得到任何输出。我也没有得到任何错误。请告诉我在询问中哪里出错了。
我使用“XMLEditix”作为xml引擎。
对不起,如果我的问题很傻的话,我是xml新手。看来您的逻辑相当正确。也许是替换
doc("C:/Users/
与
可以解决您的问题吗?我希望您的实际查询是
$y/empName
,而不是$y/emptName
。@keshlam是的,对不起,我的意思是$y/empName
,而不是$y/emptName