我在的XPath查詢到Java相當新的,我有以下問題:如何在Java中使用XPath查詢選擇元素的屬性值並將其放入String中?
我有一個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中,我hav E要這樣的事情(不工作):
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屬性的值,然後我嘗試把該數值到驅動器Id(這是一個String對象)
但這種方式不能工作的d當我運行此代碼時,我獲得以下錯誤消息:
java.lang.ClassCastException: org.jdom.Attribute cannot be cast to org.jdom.Element
問題是什麼?我錯過了什麼?我該如何解決?
TNX
安德烈
那麼「MyID」是一個屬性不是一個元素,所以我認爲你做錯了演員。 – gtgaxiola