关于 XML 和 javascript 在 asp.net页面显示 tree 的问题
因为是 vs2003 , 也没有下载 treeview 控件
大体代码 是这样的: 调用webserivce 引用了一段 xml报文 改写报文格式
用javascript的方式 展现出来
可 最后出了点问题~~~
CS代码:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
InterManager.InterManagerService IM = new SmsOneSelf.InterManager.InterManagerService();
string usersxml = IM.getOrgArch();
IM.Dispose();
XmlDocument dom = new XmlDocument();
XmlDocument newdom = new XmlDocument();
dom.LoadXml(usersxml);
//XmlNodeList nodes =dom.GetElementsByTagName( "orgUnit ");
XmlNodeList orgList= dom.SelectSingleNode( "organization ").ChildNodes;
XmlElement newroot = newdom.CreateElement( "tree ");
newroot.SetAttribute( "text ", "root ");
foreach(XmlNode xnode in orgList)
{
XmlElement xe=(XmlElement)xnode;
string str = xe.GetAttribute( "upid ")==null? " ":xe.GetAttribute( "upid ");
if(str== "0 "||str== "-1 "||str== " ")
{
XmlElement neworg = newdom.CreateElement( "tree ");
neworg.SetAttribute( "id ",xe.GetAttribute( "id "));
neworg.SetAttribute( "text ",xe.GetAttribute( "name "));
neworg.SetAttribute( "target ", " ");
neworg.SetAttribute( "action ", " ");
neworg = buileXmlTree(neworg,orgList,newdom);
newroot.AppendChild(neworg);
}
}
//Response.ContentType= "text/xml ";
//Response.Write(newroot.ToString());
//XmlWriter xw = new XmlWriter();
//Response.Write(newroot.Value);
//XmlTextWriter xtw = new XmlTextWriter(newroot.ToString());
//Console.Write(newroot.ToString());
//xtw.Flush();
//xtw.Close();
//newdom.Save(Console.Out);
// 主要就是这个地方 想输出流 却总是输出不对 尝试了很多方法
Console.Write(newroot.ToString());
}
public XmlElement buileXmlTree(XmlElement root,XmlNodeList nodes,XmlDocument dom)
{
foreach(XmlNode node in nodes)
{
XmlElement xe = (XmlElement) node;
if(xe.GetAttribute( "upid ")==root.GetAttribute( "id "))
{
XmlElement child = dom.CreateElement( "tree ");
child.SetAttribute( "id ",xe.GetAttribute( "id "));
child.SetAttribute( "text ",xe.GetAttribute( "name "));
child.SetAttribute( "target ", " ");
child.SetAttribute( "action ", " ");
root.AppendChild(child);
buileXmlTree(child,nodes,dom);
}
}
return root;
}
JS代码:
<script type= "text/javascript " src= "js/xtree.js "> </script>
<script type= "text/javascript " src= "js/xmlextras.js "> </script>
<script type= "text/javascript " src= "js/xloadtree.js "> </script>
<script type= "text/javascript ">
/// XP Look
webFXTreeConfig.rootIcon= "images/foldericon.png ";
webFXTreeConfig.openRootIcon= "images/xp/openfolder.png ";
webFXTreeConfig.folderIcon= "images/xp/folder.png ";
webFXTreeConfig.openFolderIcon= "images/xp/openfolder.png ";
webFXTreeConfig.fileIcon= "images/xp/file.png ";
webFXTreeConfig.lMinusIcon= "images/xp/Lminus.png ";
webFXTreeConfig.lPlusIcon= "images/xp/Lplus.png ";
webFXTreeConfig.tMinusIcon= "images/xp/Tminus.png ";
webFXTreeConfig.tPlusIcon= "images/xp/Tplus.png ";
webFXTreeConfig.iIcon= "images/xp/I.png ";
webFXTreeConfig.lIcon= "images/xp/L.png ";
webFXTreeConfig.tIcon= "images/xp/T.png ";
webFXTreeConfig.blankIcon = "images/blank.png ";
var tree = new WebFXLoadTree( "组织机构 ", "treeview.aspx ");
tree.setBehavior( "classic ");
document.write(tree);
</script>
=========================================================================
最后显示的 时候 只有 组织结构
用java
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(new FileOutputStream( "orgtree.xml "));
xmlWriter.write(newdoc);
这样写 在 JSP中 可以输出 .net 中 输入流为什么会输出无效?
求解~~~谢谢~~~
[解决办法]