我有以下XML:如何在Java SimpleXML庫中設置路徑時使用XML元素的值?
<rdr>
<details>
<detail>
<name>version</name>
<value>15.0</value>
</detail>
<detail>
<name>resolution</name>
<value>1080X1920</value>
</detail>
</details>
</rdr>
,我編組爲以下的Java Bean此:
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;
@Root(name = "rdr", strict = false)
public class XmlBean {
@Path("details/detail[1]")
@Element(name = "value")
private String version;
@Path("details/detail[2]")
@Element(name = "value")
private String resolution;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getResolution() {
return resolution;
}
public void setResolution(String resolution) {
this.resolution = resolution;
}
}
我使用簡單的XML,版本2.6.6來實現這一目標:http://simple.sourceforge.net/
但是,我想要做的是使用XPath中的名稱元素。例如,我不想使用路徑「details/detail [1]」,我想使用「details/detail [name = version]」。這不起作用,我得到一個org.simpleframework.xml.core.PathException:返回路徑異常的索引無效。我嘗試過使用「無效」的版本。從我所瞭解的XPath中,這是正確的語法:http://www.w3schools.com/xpath/xpath_syntax.asp任何人都可以確認這看起來正確嗎?
我已經查看了簡單xml庫的源代碼,並且它正在處理XPath處理而不使用第三方庫。我可以看到它爲什麼不起作用,因爲它只接受數字,並且會拋出任何不是數字的字符的異常。
我很想修復這個庫,但懷疑我做錯了什麼,並且可能會有另一個註釋,我應該使用或者其他一些語法。
是否有另一個註釋,我可以用來實現我想要做的?是否有可能做我想用Simple做的事情?
我已經試過了,而且我得到了同樣的錯誤。就像我剛纔提到的,我知道爲什麼這是通過查看源代碼。 SimpleXML正在尋找並接受一個數字。其他任何事情都會導致拋出PathException。 我想知道是否有與SimpleXML使用不同的語法,或者是否有另一個我可以使用的註釋。 – Arthur
沒有ü嘗試的東西,如:名稱= 「版本」 或轉義字符,如:名稱= \ '版本\' 或名稱= \ 「版本的\」 –
看看這個:公共的OrderManager(@ElementList(NAME = 「訂單」)列表訂單){ this.orders =訂單; }從這裏它:http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php所以也許雙QUOT將工作 –