function Condition(tagName,attrName,attrValue) { this.tagName=tagName; this.middleStart="<tag-name name="\""+tagName+"\"">"; this.middleEnd="</tag-name>" this.child=null; this.childResult=""; } Condition.prototype.addChild=function(childCondition) { this.child=childCondition; this.childResult=this.child.showXml(); } Condition.prototype.getChild=function() { if(this.child==null) { return this; } else { return this.getChild();//这里是递归 } } Condition.prototype.showXml=function() { return this.middleStart+this.childResult+this.middleEnd; } function test1() { var con=new Condition("table",null,null); var con1=new Condition("tr",null,null); var con2=new Condition("td",null,null); var child1=con.getChild(); child1.addChild(con1); var child2=con.getChild(); child2.addChild(con2); var child3=con.getChild(); alert(con.showXml()); }
问题补充:
这个程序的功能主要是向服务器端的xml文件写入数据,这个xml文件里面描述了html页面的元素结构,比如html文件是这样:
<tag-name name="table">
<tag-attribute attributename="border">1</tag-attribute>
<tag-name name="tr">
<tag-name name="td">
</tag-name>
</tag-name>
该xml文件是在服务器端读取后封装成HtmlParser框架过滤网页内容时用的条件,以上的javascript代码就是用来生成这个XML文件的,因为HTML页面的层次有很多层,需要描述任意层次的HTML节点关系