XML overview and sample code for Pull parsing
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));
}
}
}
Copy after login2. The return value of the parser.getName() method – The tag name
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)); } } }
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
Copy after login 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!
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

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

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

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

Hot Topics

Can XML files be opened with PPT? XML, Extensible Markup Language (Extensible Markup Language), is a universal markup language that is widely used in data exchange and data storage. Compared with HTML, XML is more flexible and can define its own tags and data structures, making the storage and exchange of data more convenient and unified. PPT, or PowerPoint, is a software developed by Microsoft for creating presentations. It provides a comprehensive way of

Using Python to merge and deduplicate XML data XML (eXtensibleMarkupLanguage) is a markup language used to store and transmit data. When processing XML data, sometimes we need to merge multiple XML files into one, or remove duplicate data. This article will introduce how to use Python to implement XML data merging and deduplication, and give corresponding code examples. 1. XML data merging When we have multiple XML files, we need to merge them

Convert XML data in Python to CSV format XML (ExtensibleMarkupLanguage) is an extensible markup language commonly used for data storage and transmission. CSV (CommaSeparatedValues) is a comma-delimited text file format commonly used for data import and export. When processing data, sometimes it is necessary to convert XML data to CSV format for easy analysis and processing. Python is a powerful

Implementing filtering and sorting of XML data using Python Introduction: XML is a commonly used data exchange format that stores data in the form of tags and attributes. When processing XML data, we often need to filter and sort the data. Python provides many useful tools and libraries to process XML data. This article will introduce how to use Python to filter and sort XML data. Reading the XML file Before we begin, we need to read the XML file. Python has many XML processing libraries,

Importing XML data into the database using PHP Introduction: During development, we often need to import external data into the database for further processing and analysis. As a commonly used data exchange format, XML is often used to store and transmit structured data. This article will introduce how to use PHP to import XML data into a database. Step 1: Parse the XML file First, we need to parse the XML file and extract the required data. PHP provides several ways to parse XML, the most commonly used of which is using Simple

Python implements conversion between XML and JSON Introduction: In the daily development process, we often need to convert data between different formats. XML and JSON are common data exchange formats. In Python, we can use various libraries to convert between XML and JSON. This article will introduce several commonly used methods, with code examples. 1. To convert XML to JSON in Python, we can use the xml.etree.ElementTree module

Handling Errors and Exceptions in XML Using Python XML is a commonly used data format used to store and represent structured data. When we use Python to process XML, sometimes we may encounter some errors and exceptions. In this article, I will introduce how to use Python to handle errors and exceptions in XML, and provide some sample code for reference. Use try-except statement to catch XML parsing errors When we use Python to parse XML, sometimes we may encounter some

Python parses special characters and escape sequences in XML XML (eXtensibleMarkupLanguage) is a commonly used data exchange format used to transfer and store data between different systems. When processing XML files, you often encounter situations that contain special characters and escape sequences, which may cause parsing errors or misinterpretation of the data. Therefore, when parsing XML files using Python, we need to understand how to handle these special characters and escape sequences. 1. Special characters and
