【问题标题】:URL to InputStream with Java使用 Java 的 InputStream 的 URL
【发布时间】:2021-11-23 22:01:08
【问题描述】:

我正在使用 Android Studio 编写一个应用程序,该应用程序应该解析来自 xml 文件(使用 DOM-Parser)的数据,该文件可从以下网址获得:https://www.w3schools.com/xml/plant_catalog.xml

暂时只能从存储在我的项目中的 xml 文档“file.xml”中检索数据。

TextView tv;
List<String> list = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv = findViewById(R.id.tv);

    XMLDOMParser parser = new XMLDOMParser();
    AssetManager manager = getAssets();
    InputStream stream;

    try {
       
        stream = manager.open("file.xml");
        Document doc = parser.getDocument(stream);

        NodeList nodeList = doc.getElementsByTagName("Tag");

        for (int i = 0; i < nodeList.getLength(); i++) {
            Element e = (Element) nodeList.item(i);

            list.add(parser.getValue(e, "Value"));
        }

    } catch (IOException e1) {
        tv.setText(e1.toString());
    }
    ;


    }

}

如果我的 InputStream 名为“stream”包含来自我的 url 的 xml 文档,我该怎么办?

【问题讨论】:

    标签: java xml android-studio inputstream domparser


    【解决方案1】:

    XMLDOMParser 实际上是 JAVA 中使用的标准插件,Android Studio 没有加载它。 Android Studio 已选择使用 XMLPullParser。这是一个如何使用它的链接。

    https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser

    【讨论】:

    • 我用 Pull-Parser 试过了,但还是不行。是什么让我错了? InputStream istream = new URL("https://www.w3schools.com/xml/plant_catalog.xml").openStream(); XmlPullParserFactory parserFactory = XmlPullParserFactory.newInstance(); XmlPullParser parser = parserFactory.newPullParser(); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES,false); parser.setInput(istream,null);
    最近更新 更多