java - 为什么我不能在 SAXParser 中打开这个 XML?

标签 java xml debugging exception parsing

public static void parseit(String thexml){
     SAXParserFactory factory = SAXParserFactory.newInstance();
     SAXParser saxParser;

    try {
        saxParser = factory.newSAXParser();
        DefaultHandler handler = new DefaultHandler() {
            public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

            }
            public void endElement(String uri, String localName, String qName)throws SAXException {

            }           
            public void characters(char ch[], int start, int length) throws SAXException {

            }               
         };      
        saxParser.parse(thexml, handler);
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            Log.e("e", "e", e);
            e.printStackTrace();
        }catch (ParserConfigurationException e) {
            e.printStackTrace();    
        }
}

这是我的代码。 (非常感谢这些家伙:Can someone help me with this JAVA SAXParser?)

问题是,我总是进入IOException e。消息是这样的:

java.io.IOException: Couldn't open....and then my XML file.

我的 XML 文件是这样的,它是一个 String:

<?xml version="1.0" encoding="UTF-8"?>
<result>
    <person>
        <first_name>Mike</first_name>
    </person>
</result>

为什么它不能读取我的 XML 字符串?

最佳答案

您调用的 parse 方法需要读取 XML 文件的 URI。

您可能想要做的是创建一个 InputSource来自StringReader像这样:

InputSource source = new InputSource(new StringReader(thexml));
saxParser.parse(source, handler);

关于java - 为什么我不能在 SAXParser 中打开这个 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250704/

相关文章:

java - 使用 Java 将数组输入组织到表中?

java - 为什么Java 8可以加载Java 9类?

java - 如何在 log4j2 中配置 null appender

Java 内存不足。这不是内存泄漏吗?

ios 应用程序在解析 xml 时崩溃

xsd - 如何使用 libxml2 生成 XML 文件?

c# - 如何在 Metro 应用中调试共享合约?

c# - Visual Studio 减慢应用程序

xml - 将动态XML转换为CSV/文本

python - 在 PyDev/LiClipse 中使用 root 调试项目