第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 使用 SAX 解析讀取 XML

Java 使用 SAX 解析讀取 XML

慕桂英4014372 2023-08-16 17:39:42
所以我開始使用 xml 和 SAX 解析器,現(xiàn)在我試圖弄清楚它是如何工作的,我熟悉 JSON,但這似乎不像 JSON 那樣工作。所以這是我正在使用的代碼package com.myalbion.gamedataextractor.handlers;import java.io.File;import java.io.IOException;import java.util.List;import java.util.Map;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import com.myalbion.gamedataextractor.Main;import com.myalbion.gamedataextractor.datatables.Language;import com.myalbion.gamedataextractor.datatables.Localized;import com.myalbion.gamedataextractor.datatables.XMLFile;public class LocalizationXMLFileHandler extends DefaultHandler {    private String temp;    Localized localized;    List<Localized> localizedList;    Map<Language, String> tempMap;    /*     * When the parser encounters plain text (not XML elements),     * it calls(this method, which accumulates them in a string buffer     */    public void characters(char[] buffer, int start, int length) {           temp = new String(buffer, start, length);    }    /*     * Every time the parser encounters the beginning of a new element,     * it calls this method, which resets the string buffer     */     public void startElement(String uri, String localName,                  String qName, Attributes attributes) throws SAXException {           temp = "";           if (qName.equalsIgnoreCase("tu")) {               localized = new Localized();               localized.setUniqueName(attributes.getValue("tuid"));           } else if(qName.equalsIgnoreCase("tuv")) {               tempMap.put(Language.getLanguageFromCode(attributes.getValue("xml:lang")), )           }    }    } }我正在嘗試將此 xml 文件中的數(shù)據(jù)提取到包含語言枚舉和本地化名稱的 tempMap 中。
查看完整描述

1 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

每次點擊新的文本節(jié)點(包括僅包含空格的文本節(jié)點,例如 和 之間的文本節(jié)點)時,您都會覆蓋文本</seg>緩沖區(qū)</tuv>。處理結(jié)束標(biāo)簽時需要保存文本緩沖區(qū)的內(nèi)容,處理結(jié)束標(biāo)簽seg時將其拾取。tuv

您還應(yīng)該注意,單個文本節(jié)點的內(nèi)容可以通過對 text() 的一系列調(diào)用來提供:解析器可以以任何它喜歡的方式分解它(許多解析器在實體邊界上執(zhí)行此操作)。您需要通過附加到緩沖區(qū)來累積內(nèi)容。

另請注意,XML 區(qū)分大小寫;在測試元素名稱時,您不應(yīng)該真正忽略大小寫。

查看完整回答
反對 回復(fù) 2023-08-16
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號