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();
答案 0 :(得分:1)
XML文件由一组标记组成,应使用XML Schema或DTD(旧样式)定义。
某些XML解析器与您使用的XML解析器一样,是事件驱动的。这意味着他们按顺序读取XML文件,并在遇到特定元素时引发事件,例如开始标记,标记内的文本结束标记。通过这些事件,他们向解析器的调用者发出信号,在XML的内容中,解析已经到达,如果调用者决定使用特定标记执行某些操作,那么它将对事件做出反应。
总而言之,当解析器遇到XML文件的元素(如标记)时会引发事件。另一方面,标签是XML文件的构建块。