如何使用 e4X 创建变量路径?

发布于 2024-08-18 00:34:16 字数 663 浏览 4 评论 0原文

我需要知道如何解析 Flex 3 & 中的变量路径e4X。例如,我有两个 XML 字符串,其中一个元素的名称是唯一的区别。

<NameOfRoot>
    <NameOfChild1>
        <data>1</data>
    </NameOfChild1>
</NameOfRoot>

<NameOfRoot>
    <NameOfChild2>
        <data>2</data>
    </NameOfChild2>
</NameOfRoot>

目前我正在访问这样的变量:

var data1:String = NameOfRoot.*::NameOfChild1.*::data;
var data2:String = NameOfRoot.*::NameOfChild2.*::data;

我宁愿让这个任务更加抽象,这样如果引入“NameOfChild3”,我就不需要更新代码。例如:

var data:String = NameOfRoot.*::{variable}.*::data;

有人知道如何做到这一点吗?

I need to know how I can parse a variable path in Flex 3 & e4X. For example, I have two XML strings where the name of one element is the only difference.

<NameOfRoot>
    <NameOfChild1>
        <data>1</data>
    </NameOfChild1>
</NameOfRoot>

<NameOfRoot>
    <NameOfChild2>
        <data>2</data>
    </NameOfChild2>
</NameOfRoot>

Currently I am accessing variables like this:

var data1:String = NameOfRoot.*::NameOfChild1.*::data;
var data2:String = NameOfRoot.*::NameOfChild2.*::data;

I would rather make this task more abstract so that if "NameOfChild3" is introduced I do not need to update the code. For example:

var data:String = NameOfRoot.*::{variable}.*::data;

Does anyone have insights into how this can be done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

雨的味道风的声音 2024-08-25 00:34:16

使用此处):

var tagName:String = "NameOfChild1";
var data:String = NameOfRoot.child(tagName).data;

a>属性 命名空间 - 不确定您的情况是否有必要,但我假设您会添加一些 *::

Use the child property (LiveDocs example here):

var tagName:String = "NameOfChild1";
var data:String = NameOfRoot.child(tagName).data;

That's with no namespacing--not sure whether it's necessary in your case, but I assume you'd add some *::'s?

陌上芳菲 2024-08-25 00:34:16

这也有效:

var data:String = NameOfRoot..data;

但是如果你有超过 1 个数据节点,你就必须整理一些东西。

this also works:

var data:String = NameOfRoot..data;

but if you have more than 1 data node you'll have to sort some stuff out.

路还长,别太狂 2024-08-25 00:34:16

它看起来像“.*”。操作将会起作用。我想知道这是否是解决这个问题的最简单的方法。

var data:String = NameOfRoot.*.*::data;

It looks like the ".*." operation will work. I wonder if this is the easiest way to handle this problem.

var data:String = NameOfRoot.*.*::data;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文