![](/img/trans.png)
[英]Can I parse XML in an AsyncTask right after making a HttpPost to retrieve it? Using SAX parse
[英]SAX - Can't get the file path right in libGDX to parse
我正在嘗試在使用libGDX制作的游戲中解析xml文件。 在以下情況下,我得到FileNotFoundException。
在擴展DefaultHandler的類中,我具有此方法來解析xml / data.xml下的xml。 如果我將此xml文件夾放在src /目錄之外,則它在Eclipse中有效,但在導出時不起作用,因為jar中未包含文件夾“ xml”。
現在,當我將其放在src文件夾下並將路徑指定為“ src / xml / data.xml”時,它再次起作用,僅在Eclipse中有效。
我如何找到路徑?
public void loadXML() throws SAXException, IOException, ParserConfigurationException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(Gdx.files.internal("xml/data.xml").path(), this);
}
我認為Eclipse在src/
目錄中將文件打包到.jar文件中(請參閱Eclipse:導出到.jar並包含資源文件(ANT) ),因此首先需要從Gdx.files.internal
切換到Gdx.files.classpath
通過類路徑在jar中查找文件。
請注意,如果要將xml/
目錄保留在頂層,則應該可以將其標記為“源文件夾”。
第二個問題是,.jar中存儲的文件沒有“路徑”。 那就是沒有像“ / this / is / a / path / to / a / file”這樣的String
可以表示.jar內的文件(因此,對File上的.path()
的調用不會返回任何有用的信息) 。 你可以要求一個InputStream
或Reader
這樣的文件在-A-JAR的,雖然。 我認為Gdx.files.classpath("xml/data.xml").reader()
(或.read(1024)
)應該可以工作(假設有一個采用Reader
(或InputStream
)的SAXParser
parse
方法。如果SAXParser
需要字符串路徑,您可能需要其他方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.