Android SaxParser XMLReader.parse() 和 InputSource 参数

发布于 2024-10-25 19:16:23 字数 716 浏览 1 评论 0原文

我正在尝试使用 SaxParser 解析我的 xml 文件资源。我已经创建了 DataHandler,但我不知道如何向 XmlReader 指示 res/xml/ 中的 data.xml 的位置。

InputSource 对象的正确参数是什么?

    XmlResourceParser parser = getResources().getXml(R.xml.data);       
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    XMLReader xr = sp.getXMLReader();

    // Create handler to handle XML Tags ( extends DefaultHandler ) 
    DataSaxHandler myXMLHandler = new DataSaxHandler();
    xr.setContentHandler(myXMLHandler);
    //R.xml.data is my xml file
InputSource is=new InputSource(getResources().getXml(R.xml.data));  //getResources... is wrong say Eclipse

    xr.parse(is);       

多谢。

I am trying to parse my xml file resource with SaxParser. I have created my DataHandler but I don't know how indicate to XmlReader the location of data.xml that is in res/xml/.

What is the correct parameter for InputSource object?

    XmlResourceParser parser = getResources().getXml(R.xml.data);       
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    XMLReader xr = sp.getXMLReader();

    // Create handler to handle XML Tags ( extends DefaultHandler ) 
    DataSaxHandler myXMLHandler = new DataSaxHandler();
    xr.setContentHandler(myXMLHandler);
    //R.xml.data is my xml file
InputSource is=new InputSource(getResources().getXml(R.xml.data));  //getResources... is wrong say Eclipse

    xr.parse(is);       

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ζ澈沫 2024-11-01 19:16:23

问题是对 getResources().getXml(int id) 的调用返回 XmlResourceParser,并且没有采用 XmlResourceParser 的 InputSource 构造函数。

如果您想坚持使用 SaxParser,则需要通过 Resources#openRawResource(int id) 打开一个 InputStream,然后将其传递给 InputSource 构造函数。您还需要将文件移动到 res/raw 才能使用 openRawResource 函数。

The problem is that the call to getResources().getXml(int id) is returning a XmlResourceParser, and there is no InputSource constructor that takes an XmlResourceParser.

If you want to stick with the SaxParser, you'll need to open up an InputStream via Resources#openRawResource(int id), and then pass that to the InputSource constructor. You'll also need to move the file to res/raw to use the openRawResource function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文