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

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

根據(jù)標(biāo)簽值的變化將 xml 拆分為更小的一個(gè)

根據(jù)標(biāo)簽值的變化將 xml 拆分為更小的一個(gè)

回首憶惘然 2021-10-20 16:25:00
<?xml version="1.0" encoding="UTF-16"?><ABC>    <END />    <Tables>        <START>            <row>                <id>111</id>                <name>abc</name>                <deptId>1</deptId>            </row>            <row>                <id>112</id>                <name>abc1</name>                <deptId>1</deptId>            </row>            <row>                <id>113</id>                <name>abc3</name>                <deptId>1</deptId>            </row>            <row>                <id>222</id>                <name>def</name>                <deptId>2</deptId>            </row>            <row>                <id>333</id>                <name>pqr</name>                <deptId>2</deptId>            </row>            <row>                <id>444</id>                <name>xyz</name>                <deptId>2</deptId>            </row>            <row>                <id>555</id>                <name>lmn</name>                <deptId>3</deptId>            </row>            <row>                <id>555</id>                <name>lmn</name>                <deptId>3</deptId>            </row>        </START>    </Tables></ABC>我有一個(gè)具有上述結(jié)構(gòu)的 xml。我必須根據(jù)不同的 .xml 文件將 xml 溢出到 3 個(gè) xml 中deptId。我必須根據(jù)標(biāo)簽值的變化將 xml 拆分成更小的一個(gè)。我的元素是deptId在某些行之后其值發(fā)生了變化。所有相同的元素deptId都在一個(gè)序列中。所需的輸出是: 最好將 xml 名稱作為部門 ID。第一個(gè) xml 是 name 1.xml:<?xml version="1.0" encoding="UTF-16"?><ABC>    <END />    <Tables>        <START>            <row>                <id>111</id>                <name>abc</name>                <deptId>1</deptId>            </row>            <row>                <id>112</id>                <name>abc1</name>                <deptId>1</deptId>            </row>            <row>                <id>113</id>                <name>abc3</name>                <deptId>1</deptId>            </row>        </START>    </Tables></ABC>
查看完整描述

2 回答

?
慕仙森

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

XML 閱讀應(yīng)該<row>大致如下:


    XMLInputFactory xif = XMLInputFactory.newInstance();

    // Do not use a Reader, especially not a FileReader. An InputStream leaves the

    // encoding of the XML to the XMLStreamReader.

    InputStream in = Files.newInputStream(Paths.get("D:/SmallXmltoSplit.xml"));

    XMLStreamReader streamReader = xif.createXMLStreamReader(in);

    streamReader.nextTag();


    String id = "";

    String name = "";

    String deptId = "";


    String oldDeptId = null;

// File file = new File("D:/test" + ".xml");


    while (streamReader.hasNext()) {

        if (streamReader.isStartElement()) {

            switch (streamReader.getLocalName()) {

            case "row":

                id = "";

                name = "";

                deptId = "";

                break;

            case "id":

                id = streamReader.getElementText();

                break;

            case "name":

                name = streamReader.getElementText();

                break;

            case "deptId":

                deptId = streamReader.getElementText();

                break;

            }

        }

        if (streamReader.isEndElement()) {

            switch (streamReader.getLocalName()) {

            case "START":

                if (oldDeptId != null) {

                    saveDept();

                    //oldDeptId = deptId;

                }

                break;

            case "row":

                if (!deptId.equals(oldDeptId)) {

                    if (oldDeptId != null) {

                        saveDept();

                        oldDeptId = deptId;

                    }

                    startDept(deptId);

                }

                appendDeptRow(id, name, deptId);

                break;

            }

        }

    }

無需轉(zhuǎn)換即可書寫;事實(shí)上,它可以作為文本完成。


我把它留作練習(xí)。


不應(yīng)使用 FileReader 和 FileWriter,因?yàn)樗鼈兪褂媚J(rèn)平臺(tái)編碼對字節(jié)進(jìn)行編碼。這個(gè)類Files有很多不錯(cuò)的文件函數(shù)。


這里的另一個(gè)特色是 UTF-16 編碼,它將幾乎是 ASCII 文件的大小加倍。當(dāng)您提到有一個(gè)大文件時(shí),最好將該文件保存在 UTF-8 中,可能即使名稱是波斯語、希臘語、日語或保加利亞語。


查看完整回答
反對 回復(fù) 2021-10-20
  • 2 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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