Я читаю XML, используя dom4j, используя методы XPath для выбора нужных узлов.Учтите, что мой XML выглядит следующим образом:
<Emp_Dir>
<Emp_Classification type ="Permanent" >
<Emp id= "1">
<name>jame</name>
<Emp_Bio>
<age>12</age>
<height>5.4</height>
<weight>78</weight>
</Emp_Bio>
<Emp_Details>
<salary>2000</salary>
<designation>developer</designation>
</Emp_Details>
</Emp>
<Emp id= "2">
<name>jame</name>
<Emp_Bio>
<age>12</age>
<height>5.4</height>
<weight>78</weight>
</Emp_Bio>
<Emp_Details>
<salary>2000</salary>
<designation>developer</designation>
</Emp_Details>
</Emp>
</Emp_Classification>
<Emp_Classification type ="Contract" >
.
.
.
</Emp_Classification>
<Emp_Classification type ="PartTime" >
.
.
.
</Emp_Classification>
</Emp_Dir>
Примечание. Приведенный выше XML может показаться вам уродливым, но я создаю этот фиктивный файл только для понимания и сохранения секретности моего проекта
Когда я задаю какое-то простое выражение XPath, например:
//Emp_Classification (or)
/Emp_Dir/Emp_Classification
, тогда оно работает нормально, но когда я задаю какое-то сложное выражение, например:
/Emp_Dir/Emp_Classification/[@type='Permanent'] (or)
//Emp_Dir/Emp_Classification/[@type='Permanent']
, тогда возникает следующая ошибка:
"Invalid XPath expression: /Emp_Dir/Emp_Classification/[@type='Permanent'] Expected one of '.', '..', '@', '*', <QName>"
Может, кто-нибудь мне подскажет, что не так в моем XPath?
Мой второй вопрос: как выбрать узел Emp_Bio только для постоянных сотрудников, это работает?
//Emp_Dir/Emp_Classification/[@type='Permanent']/Emp/Emp_Bio