需要帮助说明XML解析的基础

| 我已经阅读了许多有关Android中XML解析的文章。但是,所有这些都是没有任何解释的代码。我是Android(甚至Java)的新手,但是,我使用.NET已经很长时间了。因此,请向我解释一些课程:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
他们在做什么?
xr.parse(new InputSource(sourceUrl.openStream()));
这将从Internet解析XML文件。如何解析res / raw中的XML文件?甚至在SD卡中有XML文件? .NET中是否有类似XMLDocument的类?以及如何将XML文件写入SD卡? 谢谢。
已邀请:
前三行仅设置了XML解析器。解析器的变体是流解析器,它不需要将完整的输入作为内存中的树(可能是dom解析器),而是在流经时读取xml数据。 从资产文件夹中读取内容,您可以使用该代码:
  AssetManager assetManager = context.getAssets();
        try {
            InputStream is = assetManager.open(\"1.xml\");
            board = new Board();
            board.loadFromXmlInputStream(is);
            is.close();
board.loadFromXmlInputStream(is);
内部调用您上面的三行代码,然后then4ѭ 参见例如以上各行和董事会的SampleView。 请注意,上面的代码不足以处理XML-您还需要一些回调(如Board类中所示的回调)。 作为替代方案,您还可以使用DOM解析器,该解析器在内存中创建XML的树表示形式,然后您可以遍历。
可能会帮助您了解的是,您还可以轻松地将包含XML的标准字符串传递到提供来自URL的输入流的XML处理程序中。这可能会帮助您从SD卡或任何文件等中打开一些XML字符串的地方。 您可以简单地执行以下操作:
xr.parse(new InputSource(Utils.stringToInputStream(xmlString)));
在我的Utils.java文件类中,简单地将字符串转换为InputStream的方法:
public static InputStream stringToInputStream(String str) throws UnsupportedEncodingException {
  return new ByteArrayInputStream(str.getBytes(\"UTF-8\"));
}
我也知道您说您已经阅读了许多教程,但是我发现本教程非常有帮助。 希望能有所帮助

要回复问题请先登录注册