【问题标题】:Use of XML / XML Attributes in Flex在 Flex 中使用 XML/XML 属性
【发布时间】:2011-08-26 07:30:07
【问题描述】:

我是 XML 和 XML 属性的新手。我在一些 XML 文档中读到 XML 可以用两种方式表示:

方法一

<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
 <CD>
        <TITLE>Empire Burlesque</TITLE>
        <ARTIST>Bob Dylan</ARTIST>
        <COUNTRY>USA</COUNTRY>
        <COMPANY>Columbia</COMPANY>
        <PRICE>10.90</PRICE>
        <YEAR>1985</YEAR>
    </CD>
    <CD>
        <TITLE>Hide your heart</TITLE>
        <ARTIST>Bonnie Tyler</ARTIST>
        <COUNTRY>UK</COUNTRY>
        <COMPANY>CBS Records</COMPANY>
        <PRICE>8.90</PRICE>
        <YEAR>1988</YEAR>
    </CD>
</CATALOG>

方法 - 2

<?xml version="1.0" encoding="UTF-8"?>
<CATALOG>
    <CD TITLE="Empire Burlesque" ARTIST="Bob Dylan" COUNTRY="USA" COMPANY="Columbia" PRICE="10.90" YEAR="1985"/>
    <CD TITLE="Hide your heart" ARTIST="Bonnie Tyler" COUNTRY="UK" COMPANY="CBS Records" PRICE="8.90" YEAR="1988"/>
 </CATALOG>

但例如,当我使用此函数过滤 where price >=9 并在网格中显示数据时。 使用 XML 方式 1 时,它可以正常工作,但是当我使用 XML 方式 2 时,数据网格是空的。另请注意,我在每个 DatagridColumn 的数据字段中使用 @Binding。我的过滤功能是这样的:

private function myFilter(xml:XML):Boolean
            {
                return Number(xml.PRICE) >= 9;
            }

谢谢

【问题讨论】:

    标签: xml apache-flex


    【解决方案1】:

    在方式 2 中,价格是一个属性而不是子标签,因此应该使用 @ 符号访问它。

    所以对于方式2,你的过滤功能应该是:

    private function myFilter(xml:XML):Boolean
                {
                    return Number(xml.@PRICE) >= 9;
                }
    

    注意价格前的@。

    【讨论】:

    • 圣人!我完全错过了……从我的角度来看是多么愚蠢。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多