XMLOverview and Pull parsing details
ONE Goal ,ONE Passion !
AndroidThe most developed ones are json. And parsing xml With Xstream, I have almost forgotten the manual parsing of xml. Generally, the most common ones are demo4j based on dom, and pull parsing based on sax. There is another kind that I have forgotten
Overview:
What is XML?
eXtensible Markup Language (extensible markup language);
Common functions of XML:
1 , used as configuration file
2, data format during data transmission
3, resource file in Android
Basic syntax of XML:
1. The statement must be written on the first line
<?xml version="1.0" encoding="utf-8"?> version : xml的版本号.目前只有1,0版本 encoding: 编码格式
2, there can only be one root tag
3, each tag must be closed
4, cannot Cross-nesting
is in the form of:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> </resources>
5, CDATA area
<![CDATA[ 将有特殊符号文本显示 if( 3< 5 ){ } ]]>
should be used when special symbols such as "" are used in the document CDATA area, otherwise it cannot be compiled normally.
Pull to write the XML file.
public class WriteXml { public static void main(String[] args) throws Exception { // 创建xml解析工厂 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); // 通过工厂创建序列化器(xml生成器) XmlSerializer ser = factory.newSerializer(); // 为序列化器指定输出流(将xml文件写到指定的某个文件中) ser.setOutput(new FileOutputStream("src/b.xml"), "utf-8"); // 开始写xml文件 // 1.xml的声明---------- <?xml version='1.0' encoding='utf-8' standalone='yes' ?> ser.startDocument("utf-8", true); // 2. 开始标签 ---------- <书库> ser.startTag(null, "书库"); for ( int i = 0; i < 2; i++) { //3.开始标签 ------------- <书> ser.startTag(null, "书"); // 4. 开始标签------------ <书名> ser.startTag(null, "书名"); //4.1为书名标签设置 属性--------- <书名 id = "1001"> ser.attribute(null, "id", "1001"); //4.2标签设置 文本------------ <书名 id = "1001" >百年孤独 ser.text("百年孤独"); // 5,结束标签 ------------ </书名> ser.endTag(null, "书名"); // 6.结束标签------------</书> ser.endTag(null, "书"); } // 7.根标签 结束-----------</书库> ser.endTag(null, "书库"); ser.endDocument(); } }
The generated b.xml file is:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?> <书库> <书> <书名 id="1001">百年孤独</书名> </书> <书> <书名 id="1002">百年孤独</书名> </书> </书库>
Pull parsing xmlpull_1_1_3_4c.jar two jars are parsed.
If there is no build.path, the following error will be reported: public class XmlParserDemo {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// 创建pull解析器工厂对象
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// 创建解析器对象
ArrayList<Book> list = null;
Book book = null;
// 获得解析器
XmlPullParser parser = factory.newPullParser();
// 从指定文件中解析 出xml
parser.setInput(new FileInputStream("src/b.xml"), "utf-8");
// 1 . 判断是否是根标签的结束标签
while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
switch (parser.getEventType()) {
case XmlPullParser.START_TAG: // 开始标签
if (parser.getName().equalsIgnoreCase("书库")) {
// ------------<书库>
// 如果是 跟标签时,创建集合存储 对象
list = new ArrayList<Book>();
} else if (parser.getName().equalsIgnoreCase("书")) {
// ----------<书>
// 当标签是对象时. 创建 对象
book = new Book();
} else if (parser.getName().equalsIgnoreCase("书名")) {
// ----------<书名>
// 获得当前标签中的 属性以及text.并存储到对象中
String id = parser.getAttributeValue(null, "id");
book.setId(id);
String name = parser.nextText();
book.setName(name);
}
break;
case XmlPullParser.END_TAG: // 结束标签
// 标签为对象的结束标签时,将对象存储到集合中 </书>
if (parser.getName().equalsIgnoreCase("书")) {
// -------</书>
// 注意:当时</书名>结束标签时不用做处理
list.add(book);
}
break;
}
parser.next();
} for (int i = 0; i < list.size(); i++) {
System.out.println("---" + list.get(i));
}
}
}
2. The return value of the parser.getName() method – The tag name
is in the shape of: org.xmlpull.v1.XmlPullParserException: caused by: org.xmlpull.v1.XmlPullParserException:
resource not found: /META-INF/services/org.xmlpull.v1.XmlPullParserFactory make sure that parser implementing XmlPull API is available
When parser parses, parser will also move to the tag title text (text). And text has no tag name, so it is null.
The above is the detailed content of XML overview and sample code for Pull parsing. For more information, please follow other related articles on the PHP Chinese website!

RSS and XML are tools for web content management. RSS is used to publish and subscribe to content, and XML is used to store and transfer data. They work with content publishing, subscriptions, and update push. Examples of usage include RSS publishing blog posts and XML storing book information.

RSS documents are XML-based structured files used to publish and subscribe to frequently updated content. Its main functions include: 1) automated content updates, 2) content aggregation, and 3) improving browsing efficiency. Through RSSfeed, users can subscribe and get the latest information from different sources in a timely manner.

The XML structure of RSS includes: 1. XML declaration and RSS version, 2. Channel (Channel), 3. Item. These parts form the basis of RSS files, allowing users to obtain and process content information by parsing XML data.

RSSfeedsuseXMLtosyndicatecontent;parsingtheminvolvesloadingXML,navigatingitsstructure,andextractingdata.Applicationsincludebuildingnewsaggregatorsandtrackingpodcastepisodes.

RSS documents work by publishing content updates through XML files, and users subscribe and receive notifications through RSS readers. 1. Content publisher creates and updates RSS documents. 2. The RSS reader regularly accesses and parses XML files. 3. Users browse and read updated content. Example of usage: Subscribe to TechCrunch's RSS feed, just copy the link to the RSS reader.

The steps to build an RSSfeed using XML are as follows: 1. Create the root element and set the version; 2. Add the channel element and its basic information; 3. Add the entry element, including the title, link and description; 4. Convert the XML structure to a string and output it. With these steps, you can create a valid RSSfeed from scratch and enhance its functionality by adding additional elements such as release date and author information.

The steps to create an RSS document are as follows: 1. Write in XML format, with the root element, including the elements. 2. Add, etc. elements to describe channel information. 3. Add elements, each representing a content entry, including,,,,,,,,,,,. 4. Optionally add and elements to enrich the content. 5. Ensure the XML format is correct, use online tools to verify, optimize performance and keep content updated.

The core role of XML in RSS is to provide a standardized and flexible data format. 1. The structure and markup language characteristics of XML make it suitable for data exchange and storage. 2. RSS uses XML to create a standardized format to facilitate content sharing. 3. The application of XML in RSS includes elements that define feed content, such as title and release date. 4. Advantages include standardization and scalability, and challenges include document verbose and strict syntax requirements. 5. Best practices include validating XML validity, keeping it simple, using CDATA, and regularly updating.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

SublimeText3 Mac version
God-level code editing software (SublimeText3)