首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

基於 J2ME 的 SVGT 移動應用開發(二):JSR-172 XML 解析與網路監控實戰範例

     編輯:J2ME

JSR-172:輕量級 XML 處理

JSR-172 實作 JAXP 1.2 子集,支援 SAX 2.0,適合記憶體受限環境。核心套件:

  • javax.xml.parsers:SAXParserFactory、SAXParser、解析例外。
  • org.xml.sax:核心 SAX 介面(ContentHandler、Attributes...)。
  • org.xml.sax.helpers:DefaultHandler 等輔助類。

若平台不支援 JSR-172,可改用 KXML 等第三方解析器。

SAX 解析器實作範例

class BasicHandler extends DefaultHandler {
    private Stack tagStack = new Stack();

    public void startElement(String uri, String localName, String qName, Attributes attrs) {
        if ("AAA".equals(qName)) { /* 資料處理 */ }
        tagStack.push(qName);
    }

    public void characters(char[] ch, int start, int length) {
        String text = new String(ch, start, length).trim();
        if (text.length() > 0) {
            String currentTag = (String) tagStack.peek();
            if ("BBB".equals(currentTag)) { /* 資料處理 */ }
        }
    }

    public void endElement(String uri, String localName, String qName) {
        tagStack.pop();
    }
}

// 使用方式
try {
    SAXParserFactory factory = SAXParserFactory.newInstance();
    SAXParser parser = factory.newSAXParser();
    // 從檔案系統
    FileConnection fc = (FileConnection) Connector.open("file:///root1/phones.xml");
    InputStream is = fc.openInputStream();
    parser.parse(is, new BasicHandler());
    // 或從字串
    // InputStream is = new ByteArrayInputStream(xmlString.getBytes());
    // parser.parse(is, new BasicHandler(canvas));
} catch (Exception ex) { ex.printStackTrace(); }

完整應用:簡訊驅動的網路拓撲監控

架構圖

類別職責

  • MySamplePushRegistry(MIDlet):啟動 SvgCanvas,於 port 50001 註冊 SMS Push 監聽。
  • SvgCanvas:載入靜態 SVG 網路拓撲圖(PC、印表機、連線),根據狀態物件動態更新元件顏色(綠=正常、紅=故障)。
  • BasicHandler:SAX 解析收到的 XML 簡訊,產生 Status 物件列表。
  • Status:封裝裝置 ID、類型、狀態碼。

運作流程

  1. MIDlet 啟動 → 顯示 SVG 靜態拓撲圖 → 啟動 SMS 監聽。
  2. 收到 XML 簡訊 → BasicHandler 解析 → 產生 Status 列表。
  3. 解析完成 → 通知 SvgCanvas 重繪:遍歷 Status,對應 SVG 元素 ID,修改 fill 屬性(綠/紅)。
  4. 使用者看到即時狀態變化,無需重新下載圖形。

模擬器運行截圖

1. 啟動畫面

2. 發送 XML 簡訊

3. PC 正常、連線故障、印表機故障顯示

SVGT 應用前景總結

  • 娛樂教育:遊戲、互動教學、向量動畫。
  • 位置服務(LBS):可縮放地圖、圖層切換、POI 點選、導航、調度、電子導覽、行動廣告。
  • 現場服務:技術圖面、設備監控、全景/細節無縫切換。
  • 所有位圖無法滿足的互動、縮放、資料綁定場景。

Mobile SVG 已被 3GPP 採納用於 MMS,將成為 2.5G/3G 時代豐富媒體訊息的核心技術。產業鏈(營運商、手機廠、內容商)共同推動,將讓矢量圖形在資源受限裝置大放異彩。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved