xml - Flex e4x - 通过多个属性选择

标签 xml apache-flex flash actionscript-3 e4x

<EFM>
    <projects>
        <project name="EFM Columbus Supply Chain Project">
            <characteristics>
                <characteristic name="Types of Data">
                    <textDescription></textDescription>
                    <options>
                        <option name="Commodity Flow" value="True"/>
                        <option name="Industry Assets" value="False"/>
                        <option name="Trade Data" value="True"/>
                        <option name="Infrastructure" value="False"/>
                        <option name="Economic Data" value="False"/>
                        <option name="Benefits Information" value="True"/>
                        <option name="Supply Chain Event Data" value="False"/>
                        <option name="Physical Movement Data" value="False"/>
                        <option name="Other" value="True"/>
                    </options>
                </characteristic>
            </characteristics>
    </project>
   </projects>
</EFM>

我想按此标准选择节点的 XMLList

<Projects>.<project>.@name = x    &&  <Projects>.<project>.<characteristics>.<characteristic>.<options>.<option>.(@name == y && @value == z)

本质上是通过给定项目名称的属性[名称和值]进行查询

最佳答案

trace(xml.projects.project.(@name == "EFM Columbus Supply Chain Project").characteristics.characteristic.options.option.(@name == "Other" && @value == "True").toXMLString());

//traces <option name="Other" value="True"/>

//broken down to fit in the screen:
trace(
  xml.projects.project.(
    @name == "EFM Columbus Supply Chain Project"
  ).characteristics.characteristic.options.option.(
      @name == "Other" && @value == "True"
  ).toXMLString()
);

更新:以防万一您想获取项目标签而不是选项标签:

var xml:XML = 
<EFM>
  <projects>
    <project name="EFM 1" id="wrong">
      <characteristics>
        <characteristic name="Types of Data">
          <options>
            <option name="Benefits Information" value="True"/>
            <option name="Supply Chain Event Data" value="False"/>
            <option name="Physical Movement Data" value="False"/>
            <option name="Other" value="True"/>
          </options>
        </characteristic>
      </characteristics>
    </project>
    <project name="EFM 1" id="right">
      <characteristics>
        <characteristic name="Types of Data">
          <options>
            <option name="Benefits Information" value="True"/>
            <option name="Supply Chain Event Data" value="False"/>
            <option name="Physical Movement Data" value="False"/>
            <option name="Other" value="False"/>
          </options>
        </characteristic>
      </characteristics>
    </project>
    <project name="EFM 2" id="wrong">
      <characteristics>
        <characteristic name="Types of Data">
          <options>
            <option name="Benefits Information" value="True"/>
            <option name="Supply Chain Event Data" value="False"/>
            <option name="Physical Movement Data" value="False"/>
            <option name="Other" value="False"/>
          </options>
        </characteristic>
      </characteristics>
    </project>
  </projects>
</EFM>;

E4X:

trace(xml.projects.project.(@name == "EFM 1" && characteristics.characteristic.options.option.(@name == "Other").@value == "False").toXMLString());

//broken down to fit in the screen
trace(
  xml.projects.project.(
    @name == "EFM 1" && characteristics.characteristic.options.option.(
      @name == "Other"
    ).@value == "False"
  ).toXMLString()
);

输出:

<project name="EFM 1" id="right">
  <characteristics>
    <characteristic name="Types of Data">
      <options>
        <option name="Benefits Information" value="True"/>
        <option name="Supply Chain Event Data" value="False"/>
        <option name="Physical Movement Data" value="False"/>
        <option name="Other" value="False"/>
      </options>
    </characteristic>
  </characteristics>
</project>

关于xml - Flex e4x - 通过多个属性选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2013917/

相关文章:

java - Android/华为 : java. io.FileNotFoundException :/data/cust/xml/hw_launcher_load_icon. xml: 打开失败: ENOENT (没有这样的文件或目录)

asp.net - DataSet.GetXml 不返回空结果

actionscript-3 - Flex Mobile AIR native 扩展错误

java - Flex 与数据库的连接

flash - Flash Professional和Flash Builder之间有什么区别?

java - 如何使用 Inubit 工具集将图像存储在数据库中?

c# - XElement => 在运行时添加子节点

php - 使用 actionscript 将 Arraycollection 字段保存到 mysql/php

flash - IE-8 iframe 和 flash 对象忽略 z-index?

javascript - 使用 AS3 或 JS/Jquery 在 SWF 动画结束时执行 JavaScript 函数