Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AS3/FLex4/Air应用程序中保存XML时保留选项卡_Xml_Apache Flex_Tabs - Fatal编程技术网

在AS3/FLex4/Air应用程序中保存XML时保留选项卡

在AS3/FLex4/Air应用程序中保存XML时保留选项卡,xml,apache-flex,tabs,Xml,Apache Flex,Tabs,我正在AS3/Flex中加载一个AIR应用程序的xml文件。保存时,缩进看起来很漂亮,但是原始文件中的所有选项卡现在都是空格。我可以保存到标签保留吗 打开文件代码: var file:File = event.target as File; var fileStream:FileStream = new FileStream(); fileStream.open( file, FileMode.READ ); var fileContents:String = fileStream.readU

我正在AS3/Flex中加载一个AIR应用程序的xml文件。保存时,缩进看起来很漂亮,但是原始文件中的所有选项卡现在都是空格。我可以保存到标签保留吗

打开文件代码:

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();

谢谢

我最终转换成字符串,用tab替换了双空格。我找到了Colin Moock的替换函数

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;
    }
}

我最终转换成字符串,用tab替换了双空格。我找到了Colin Moock的替换函数

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;
    }
}