考虑这个带有"节点"的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)
如何才能做到这一点?
当我研究如何在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专家.
先谢谢你,杰克