Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
解析XML以打印每个单词具有格式属性的字符串_Xml_Actionscript 3_Apache Flex_Flex4_Flex3 - Fatal编程技术网

解析XML以打印每个单词具有格式属性的字符串

解析XML以打印每个单词具有格式属性的字符串,xml,actionscript-3,apache-flex,flex4,flex3,Xml,Actionscript 3,Apache Flex,Flex4,Flex3,我有一个XML,其中包含以下类型的字段: <mytext><![CDATA[ My name is <color value="FF0000">Bill</color>. ]]></mytext> 由于我不熟悉E4X方法,我想知道是否有一种简单的方法使用E4X方法来打印内部文本:我的名字是Bill。在文本区域中,将“Bill”一词涂成红色 一般情况是,如果我可以打印内部文本并使用XML标记指定每个单词文本的格式属性 E4X支持这种类型

我有一个XML,其中包含以下类型的字段:

<mytext><![CDATA[ My name is <color value="FF0000">Bill</color>. ]]></mytext>
由于我不熟悉E4X方法,我想知道是否有一种简单的方法使用E4X方法来打印内部文本:我的名字是Bill。在文本区域中,将“Bill”一词涂成红色

一般情况是,如果我可以打印内部文本并使用XML标记指定每个单词文本的格式属性


E4X支持这种类型的解析吗,或者我必须为这种情况编写自己的小解析器吗?

首先,让我们规范化html内容,我添加了一个标记以使其有效:

var mytext:XML = XML("<mytext><![CDATA[<content>My name is <color value="FF0000">Bill</color>.</content>]]></mytext>");
然后,您必须用标准标记替换自定义标记:

var output:XML = XML("<span/>");
for each(var tag:XML in roughXML.children())
{
    if (tag.name() == "color")
    {       
        var fontTag:XML = XML("<font/>");
        fontTag.@color = tag.@value.toString();
        fontTag.appendChild(tag.text());
        output.appendChild(fontTag);
    }
    //you can add here any rule for substitution that you need
    else
    {
        output.appendChild(tag);
    }
}

哇!我想我还在研究它。。这就是我需要的!只需添加一点:在带有tag.name的if子句之后,在var fontTag之后。。。我想必须输入fontTag.appendChildtag.text?对吗?还有一条评论,因为我还不知道我要研究TextConverter类:当我将第二个参数importToFlow方法更改为TEXT\u FIELD\u HTML\u格式时,我只得到不带颜色的文本,当我输入您提供的常量时,我只得到不带颜色的标记文本:这是。如何指定颜色有问题吗?再一次,我的错误是,我应该编写文本\字段\ HTML \格式。关于颜色,如果没有,我想你应该在颜色前加上一个。谢谢!!所以,我的理念是指定我的标记,并尝试转换为HTML标记…酷!以下是您可以使用的标签:
var output:XML = XML("<span/>");
for each(var tag:XML in roughXML.children())
{
    if (tag.name() == "color")
    {       
        var fontTag:XML = XML("<font/>");
        fontTag.@color = tag.@value.toString();
        fontTag.appendChild(tag.text());
        output.appendChild(fontTag);
    }
    //you can add here any rule for substitution that you need
    else
    {
        output.appendChild(tag);
    }
}
var textFlow:TextFlow = TextConverter.importToFlow(output.toXMLString(), TextConverter.TEXT_FIELD_HTML_FORMAT);
myRichEditableText.textFlow = textFlow;