2014-02-08 43 views
0

我正在使用2個xml文件 - 「Department.xml」和「Employee.xml」。在xquery中沒有得到正確的輸出

Department.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> 

Employee.xml

<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> 

我想,如果 「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> 

但我沒有得到任何輸出。我也沒有收到任何錯誤。請告訴我在查詢中出錯的地方。 我使用「xml editix」作爲xml引擎。 對不起,如果我的問題很傻,我是新的XML。

+1

我希望你的實際查詢顯示'$ y/empName',而不是'$ y/emptName',就像你在這裏顯示的那樣。 – keshlam

+0

@keshlam對不起,我的意思是'$ y/empName',而不是'$ y/emptName' –

回答

0

看來你的邏輯非常正確。也許有

doc("/C:/Users/ 

更換

doc("C:/Users/ 

就能解決問題了嗎?