編輯:關於Android編程
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<root xmlns="china">
... ...
<BodyList xmlns:sax="male" xml:name="chinese">
<Body>
<sax:xxid>中年男性</sax:xxid>
<name:xxname>尼大叔</name:xxname>
</Body>
<Body>
... ...
</Body>
</BodyList>
... ...
</root>
看上的xml中xmlns就是屬於tag的屬性,而sax則屬於一個命名空間,這是個什麼東西呢 言而總之就是說xxid引用的是xmlns:sax的值,此處代表性別男性,而他自己可以是中年男性,也可以是小男孩,也可以是青年或老年人等 我的理解命名空間 類似與java的包的概念 實現代碼如下
項目需要生成xml,樣式較為復雜,幾經曲折終於搞定,生成xml的樣式如下:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<root xmlns="china">
... ...
<BodyList xmlns:sax="male" xml:name="chinese">
<Body>
<sax:xxid>中年男性</sax:xxid>
<name:xxname>尼大叔</name:xxname>
</Body>
<Body>
... ...
</Body>
</BodyList>
... ...
</root>
看上的xml中xmlns就是屬於tag的屬性,而sax則屬於一個命名空間,這是個什麼東西呢
言而總之就是說xxid引用的是xmlns:sax的值,此處代表性別男性,而他自己可以是中年男性,也可以是小男孩,也可以是青年或老年人等
我的理解命名空間 類似與java的包的概念
實現代碼如下
[java]
public String createXml() {
XmlSerializer xmlSerializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
xmlSerializer.setOutput(writer);
xmlSerializer.startDocument("UTF-8", true);
/**
* 此處生成的是<root xmlns="china">
*/
xmlSerializer.startTag("", "root");
xmlSerializer.attribute("", "xmlns", "china");
// ... ...
/**
* 這裡會生成命名空間,命名空間和屬性從表面看最大區別就是:
* 聲明的時候(應該說賦值的時候),一個帶前綴,一個不帶前綴
*/
xmlSerializer.setPrefix("sax", "max");
xmlSerializer.setPrefix("name", "chinese");
xmlSerializer.startTag("", "BodyList");
xmlSerializer.startTag("", "Body");
/**
* 對於命名空間值的運用,把starttag的namespace參數添加上去相應的即可
* public abstract XmlSerializer startTag (String namespace, String name)
*/
xmlSerializer.startTag("sax", "xxid");
xmlSerializer.text("中年大叔");
xmlSerializer.endTag("sax", "xxid");
/**
* 如果此處設置前綴的話(即調用方法setPrefix)就會生成錯誤的結果
*/
xmlSerializer.startTag("name", "xxname");
xmlSerializer.text("尼大叔"); //這個是中間的文字
xmlSerializer.endTag("name", "xxname");
xmlSerializer.endTag("", "Body");
xmlSerializer.endTag("", "BodyList");
// ... ...
// 文檔結束
xmlSerializer.endTag("", "root");
xmlSerializer.endDocument();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String resultString = writer.toString();
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
return resultString;
}
Android系統中添加一個產品----圖文詳解
本文本著開源的精神介紹如何向一個Android系統中添加一個產品的整個過程,按照以下過程筆者有理由相信每個將要從事本行業的人都可以完成,其實添加一個產品並不難,難的是對其
Android ViewPager多頁面滑動切換以及動畫效果
一、首先,我們來看一下效果圖,這是新浪微博的Tab滑動效果。我們可以手勢滑動,也可以點擊上面的頭標進行切換。與此同方式, 白色橫條會移動到相應的頁卡頭標下。這是一個動
Android之3.5版的百度地圖的定位、覆蓋物實現以及覆蓋物的點擊事件
概述前段時間,在用到新版(3.5.0版)百度地圖時,在地圖覆蓋物實現以及覆蓋物點擊事件的添加部分遇到點挫折,發現網上很多的資料寫得都不夠詳細,所以我就想寫一個有關從地圖定
在線看Android系統源碼,那些相見恨晚的幾種方案
前言:最近在研究MediaCodec,u盤壞了,之前下載的源碼也就自然沒有了,真是個難過的事情,不能因為沒有源碼了,就阻擋我的計劃了呀,於是就是今天一文,在線看Andro