2014-02-08 2 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/ 

решит вашу проблему?

Смежные вопросы