java - xml中事件和标签的区别

标签 java android xml

XML 中的事件和标签有什么区别?

事件是大标题,标签是副标题吗?

我如何知道哪个是事件,哪个是标签?

因此,在下面的代码中,我从该 XML 文件获取事件和标签。

我发现标签以某种方式隐藏在 xml 文件中,对于每个事件,它都会通过标签,但我想知道如何分辨两者之间的确切区别

public boolean process (){
    boolean status = true;
    Application currentRecord = null;
    boolean inEntry = false;
    String textValue = "";

    try {
        XmlPullParserFactory factory = XmlPullParserFactory.newInstance().newInstance();
        factory.setNamespaceAware(true);
        XmlPullParser xpp = factory.newPullParser();
        xpp.setInput(new StringReader(this.xmlData));
        int eventType = xpp.getEventType();

        while(eventType != XmlPullParser.END_DOCUMENT){
            String tagName = xpp.getName();
            switch (eventType){
                case XmlPullParser.START_TAG:
                    Log.d("ParseApplications", "Starting Tag for " + tagName);
                    if (tagName.equalsIgnoreCase("entry")) {
                        inEntry = true;
                        currentRecord = new Application();
                    }
                    break;

                case XmlPullParser.TEXT:
                    textValue = xpp.getText();
                    break;

                case XmlPullParser.END_TAG:
                    Log.d("ParseApplication", "Ending Tag for " + tagName);
                    if (inEntry){
                        if (tagName.equalsIgnoreCase("entry")){
                            applications.add(currentRecord);
                            inEntry = false;
                        }
                        else if (tagName.equalsIgnoreCase("name")){
                            currentRecord.setName(textValue);
                        }
                        else if (tagName.equalsIgnoreCase("artist")){
                            currentRecord.setArtist(textValue);
                        }
                        else if (tagName.equalsIgnoreCase("release date")){
                            currentRecord.setReleaseDate(textValue);
                        }
                    }
                    break;
                default :

            }
            eventType = xpp.next();

最佳答案

XML 文件由一组标签组成,应使用 XML 架构或 DTD(旧样式)进行定义。

某些 XML 解析器(如您使用的解析器)是事件驱动的。这意味着它们按顺序读取 XML 文件,并在遇到特定元素(例如开始标记、结束标记和标记内的文本)时引发事件。通过这些事件,它们向解析器的调用者发出信号,表明解析已到达 XML 内容中的位置,并且如果调用者决定对特定标记执行某些操作,那么它将对该事件使用react。

总而言之,当解析器遇到 XML 文件的元素(例如标签)时,就会引发事件。另一方面,标签是 XML 文件的构建 block 。

关于java - xml中事件和标签的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757472/

相关文章:

python - 如何使用 Python 按条件查找和删除 XML 文件(带有 namespace )中的元素

java - 对文件系统上的 XML 文件进行快速全文搜索。选择什么策略?

java - 新版本 Grails 中出现 Drools 异常

java - MediaPlayer 中出现错误 : E/MediaPlayer: Error (1, -19) - Android

java - 冷融合: Regex to match words and replace & change link

android - 带 Sqlite 的 Android 空间数据库

java - 协调 thrift 中继承的缺失与 Java/Scala 中的方法定义

android - 在 webview android 中加载 URL 的问题

android - WebViews UID 与应用程序 UID 相同吗?

html - 什么是站点地图.xml