Я новичок в запросе XPath в Java, и у меня есть следующая проблема:
У меня есть переменная org.jdom.Document documentXML, которая содержит следующее содержимое XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<status>
<id>0</id>
<message>Operazione conclusa con successo</message>
</status>
<drivers>
<drive id="MyID">
<propery1 />
<property2 />
<property3 />
<property4>0</property4>
<sproperty5>104857600</property5>
<property6 />
</drive>
</drivers>
</root>
Мне нужно выбрать значение внутри атрибута id и поместить его в строку (поэтому мне нужно поместить значение «MyID» в строку)
В Java мне нужно что-то вроде этого (это не работает):
org.jdom.output.XMLOutputter xmlOutputterCDATAContent = new org.jdom.output.XMLOutputter(org.jdom.output.Format.getPrettyFormat());
xmlOutputter.output(documentXML, System.out);
xPath = XPath.newInstance("/root/drivers/drive/@id");
objectElement = (Element) xPath.selectSingleNode(documentXML);
driveId = objectElement.getValue();
System.out.println("ID " + objectElement.getValue() + " /ID");
Итак, как видите, переменная documentXML содержит предыдущий код XML.
Я создаю запрос XPath для доступа к значению атрибута id узла диска, затем пытаюсь поместить это значение в driveId ( это объект String)
Но таким образом не может работать, и когда я запускаю этот код, я получаю следующее сообщение об ошибке:
java.lang.ClassCastException: org.jdom.Attribute cannot be cast to org.jdom.Element
В чем проблема? Что мне не хватает? Как я могу решить?
Tnx
Андреа