目的のノードを選択するための XPath 手法を使用して、dom4j を使用して XML を読み取っています。私の 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で何がうまくいかないのか、誰かが私を導くことができますか?
2 番目の質問は、正社員のみの Emp_Bio ノードを選択する方法です。これは機能しますか?
//Emp_Dir/Emp_Classification/[@type='Permanent']/Emp/Emp_Bio