Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在xquery中未获得正确的输出_Xml_Xquery - Fatal编程技术网

Xml 在xquery中未获得正确的输出

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

我正在使用两个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>
    <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