小编Jak*_*ett的帖子

E4X可以根据任何级别的孩子的属性获取父节点的属性吗?

考虑这个带有"节点"的XML片段,它可以具有无限子级别的"子节点"元素.

我想找到@type的属性,node对于任何给定subnode的基础上,它的@id属性.例如,如果我的id为9,那么我想从上面返回type ="foo".

<xml>
    <node type="bar">
        <subnode id="4">
            <subnode id="5"/>
        </subnode>  
        <subnode id="6"/>
    </node>
    <node type="foo">
        <subnode id="7">
            <subnode id="8">
                <subnode id="9"/>
            </subnode>
        </subnode>
        <subnode id="10"/>
    </node>
</xml>
Run Code Online (Sandbox Code Playgroud)

我想出了E4X,但失败的是:

xml.node.(subnode.(@id == '8')).@type 
Run Code Online (Sandbox Code Playgroud)

我可以理解为什么它不起作用.更有意义的是以下但语法失败(在AS3中):

xml.node.(..subnode.(@id == '8')).@type
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

apache-flex e4x actionscript-3

4
推荐指数
1
解决办法
4779
查看次数

如何根据SQL行中的值创建正确的子类

当我研究如何在C#中为ASP.NET项目创建子类时,我感觉非常聪明,然后我发现了一个问题 - 我不知道如何根据SQL查询的结果创建正确子类的对象.

假设您有一个名为Animal的类和两个名为Zebra和Elephant的子类.你明白了吗?

我想要做的是执行一个SQL查询,如果返回的行有行["Type"] ="Zebra"然后加载一个Zebra对象(或者如果它是一个大象然后..).

所以,原则上,Animal类将有一个静态方法:

class Animal{
 public static Animal Load(DataRow row){
  if (row["Type"]=="Zebra"){
   return new Zebra();
  } 
}

class Zebra : Animal{
 //some code here
}
Run Code Online (Sandbox Code Playgroud)

这是完全可能的还是我只是明白了子类的想法是错误的.很明显,我不是OO专家.

先谢谢你,杰克

c# sql subclassing

1
推荐指数
1
解决办法
348
查看次数

标签 统计

actionscript-3 ×1

apache-flex ×1

c# ×1

e4x ×1

sql ×1

subclassing ×1