Flex / Actionscript - почему не работает XML.ignoreWhitespace = false? - PullRequest
0 голосов
/ 19 апреля 2011

Следующие простые коды показывают, как я пытаюсь сохранить пробелы в своем XML, но это не работает! Есть идеи, что я здесь делаю не так? (обратите внимание на пробел перед «мир!»

<?xml version="1.0" encoding="utf-8"?>
<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    minWidth="955" minHeight="600"
    creationComplete="application1_creationCompleteHandler(event)"
    >
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            import mx.controls.Alert;

            XML.ignoreWhitespace = false;

            protected function application1_creationCompleteHandler(event:FlexEvent):void {
                var xmlString:String =
                    "<sentence><word1>hello</word1><word2> world!</word2></sentence>";
                trace(xmlString);

                XML.ignoreWhitespace = false;

                var xml:XML = 
                    new XML(xmlString);
                trace(xml.toXMLString());
                Alert.show(xml.toXMLString());
            }

        ]]>
    </fx:Script>
</s:Application>

Пожалуйста, помогите ... Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 апреля 2011

Используйте CDATA для форматирования текстовых узлов с сохранением пробелов:

<sentence><word1>hello</word1><word2><![CDATA[ world!]]></word2></sentence>

Бен прав насчет значения ignoreWhitespace.

0 голосов
/ 19 апреля 2011

Я уверен, что ignoreWhitespace работает для игнорирования форматирования пробелов и табуляции между тегами xml, но не обрезает текст внутри текстового узла.

См. это краткое вступление

...