Сохранять вкладки при сохранении XML в приложении AS3 / FLex4 / Air - PullRequest
1 голос
/ 31 марта 2011

Я загружаю XML-файл в AS3 / Flex для приложения AIR. Когда я сохраняю его, отступ выглядит красиво, однако все вкладки из исходного файла теперь являются пробелами. Можно ли сохранить, чтобы вкладки остались?

код открытого файла:

var file:File = event.target as File;
var fileStream:FileStream = new FileStream();
fileStream.open( file, FileMode.READ );

var fileContents:String = fileStream.readUTFBytes(
    fileStream.bytesAvailable );
fileStream.close();

XML.ignoreComments = false;
XML.ignoreWhitespace = false;
var newXML:XML = new XML(fileContents);

var scriptParent:XML = <xml></xml>;
scriptParent.appendChild(newXML);
data = new XMLListCollection(scriptParent.children());

сохранить файл с кодом:

var stream:FileStream = new FileStream();
stream.open(currFileObject, FileMode.WRITE);
stream.writeUTFBytes(XML (data));
stream.close();

спасибо!

1 Ответ

1 голос
/ 03 мая 2011

Я закончил преобразование в строку и просто заменил двойные пробелы на табуляцию. Я нашел функцию замены Колина Мука.

function saveData(event:Event):void 
{
    var newFile:File = event.target as File;
    var stream:FileStream = new FileStream();
    stream.open(newFile, FileMode.WRITE);
    var xString:String = data.toXMLString();
    var result = replace(xString, "  ", String.fromCharCode(9));
    stream.writeUTFBytes( (result));
    stream.close();
}

function replace (origStr, searchStr, replaceStr) {
    var tempStr = "";
    var startIndex = 0;
    if (searchStr == "") {
        return origStr;
    }
    if (origStr.indexOf(searchStr) != -1) {
        var  searchIndex = origStr.indexOf(searchStr, startIndex)
        while ( searchIndex != -1) {
            tempStr += origStr.substring(startIndex, searchIndex);
            tempStr += replaceStr;
            startIndex = searchIndex + searchStr.length;
            searchIndex = origStr.indexOf(searchStr, startIndex)

        }
        return tempStr + origStr.substring(startIndex);
    } else {
        return origStr;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...