#xml #apache-flex #actionscript-3 #flex4
#xml #apache-flex #actionscript-3 #flex4
Вопрос:
Следующие простые коды показывают, как я пытаюсь сохранить пробелы в моем XML, но это не работает! Есть идеи, что я здесь делаю не так? (обратите внимание на пробел перед ‘world!’
<?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>
Пожалуйста, помогите… Спасибо!
Ответ №1:
Используйте CDATA для форматирования текстовых узлов с сохранением пробелов:
<sentence><word1>hello</word1><word2><![CDATA[ world!]]></word2></sentence>
Бен прав насчет значения ignoreWhitespace
.
Ответ №2:
Я почти уверен, что ignoreWhitespace игнорирует пробелы форматирования и табуляции между xml-тегами, но он не обрезает текст внутри текстового узла.
Смотрите это краткое введение