Xml循环问题

问题描述

<Menus><Menuid="0"name="首页"><MenuItemTitlesid="01"mid="0"name="常用选项"><MenuItemmid="0"tid="01"url="Home.aspx">后台首页</MenuItem><MenuItemmid="0"tid="01"url="Test.aspx">测试页</MenuItem></MenuItemTitle><Menuid="0"name="试试"><MenuItemTitlesid="01"mid="0"name="常用选项"><MenuItemmid="0"tid="01"url="Home.aspx">后台首页</MenuItem><MenuItemmid="0"tid="01"url="Test.aspx">测试页</MenuItem></MenuItemTitle><Menus>==============================================================如果循环,得出HTML,请给出详细代码,谢谢,请注意,有id的条件区分<h1>首页</h1><h2>常用选项</h2><ahref="Home.aspx">后台首页</a><ahref="Test.aspx">测试页</a><h1>试试</h1><h2>常用选项</h2><ahref="Home.aspx">后台首页</a><ahref="Test.aspx">测试页</a>

解决方案

本帖最后由 pp8403 于 2011-11-25 20:47:05 编辑
解决方案二:
该回复于2011-11-28 08:55:36被版主删除
解决方案三:
不好答,代码太多了
解决方案四:
可以简写
解决方案五:
该回复于2011-11-28 08:59:13被版主删除
解决方案六:
<Menus><Menuid="0"name="首页"><MenuItemTitlesid="01"mid="0"name="常用选项"><MenuItemmid="0"tid="01"url="Home.aspx">后台首页</MenuItem><MenuItemmid="0"tid="01"url="Test.aspx">测试页</MenuItem></MenuItemTitle></Menu><Menuid="0"name="试试"><MenuItemTitlesid="01"mid="0"name="常用选项"><MenuItemmid="0"tid="01"url="Home.aspx">后台首页</MenuItem><MenuItemmid="0"tid="01"url="Test.aspx">测试页</MenuItem></MenuItemTitle></Menu></Menus>

格式是这样么?
解决方案七:
stringxml=@"<?xmlversion='1.0'?><Menus><Menuid='0'name='首页'><MenuItemTitlesid='01'mid='0'name='常用选项'><MenuItemmid='0'tid='01'url='Home.aspx'>后台首页</MenuItem><MenuItemmid='0'tid='01'url='Test.aspx'>测试页</MenuItem></MenuItemTitle></Menu><Menuid='0'name='试试'><MenuItemTitlesid='01'mid='0'name='常用选项'><MenuItemmid='0'tid='01'url='Home.aspx'>后台首页</MenuItem><MenuItemmid='0'tid='01'url='Test.aspx'>测试页</MenuItem></MenuItemTitle></Menu></Menus>";XmlDocumentdoc=newXmlDocument();doc.LoadXml(xml);foreach(XmlElementxeindoc.SelectNodes("/Menus/Menu")){Console.WriteLine("<h1>{0}</h1>",xe.Attributes["name"].Value);Console.WriteLine("<h2>{0}</h2>",xe.FirstChild.Attributes["name"].Value);for(inti=0;i<xe.FirstChild.ChildNodes.Count;i++){Console.WriteLine("<ahref='{0}'>{1}</a>",xe.FirstChild.ChildNodes[i].Attributes["url"].Value,xe.FirstChild.ChildNodes[i].InnerText);}}

解决方案八:
<?xmlversion="1.0"encoding="utf-8"?><Menus><Menuid="0"name="首页"><MenuItemTitlesid="01"mid="0"name="常用选项"><MenuItemmid="0"tid="01"url="Home.aspx">后台首页</MenuItem><MenuItemmid="0"tid="01"url="Test.aspx">测试页</MenuItem></MenuItemTitle></Menu><Menuid="0"name="试试"><MenuItemTitlesid="01"mid="0"name="常用选项"><MenuItemmid="0"tid="01"url="Home.aspx">后台首页</MenuItem><MenuItemmid="0"tid="01"url="Test.aspx">测试页</MenuItem></MenuItemTitle></Menu></Menus>

<html><head><title></title><scripttype="text/javascript">functionshow(){if(window.XMLHttpRequest){xmlhttp=newXMLHttpRequest();}else{xmlhttp=newActiveXObject("Microsoft.XMLHTTP");}if(xmlhttp!=null){xmlhttp.open("GET","xmlname.xml",false);xmlhttp.send(null);varresponsexml=xmlhttp.responseXML;varmenus=responsexml.getElementsByTagName("Menus")[0];vartb=document.getElementById("tb");vartr=null;vartc=null;for(vari=0;i<menus.childNodes.length;i++){varmenu=menus.childNodes[i];tr=tb.insertRow(i);tc=tr.insertCell(0);tc.innerHTML=menu.getAttribute("name");tr=tb.insertRow(i);tc=tr.insertCell(0);tc.innerHTML=menu.childNodes[0].getAttribute("name");for(varj=0;j<menu.childNodes[0].childNodes.length;j++){varmi=menu.childNodes[0].childNodes[j];varurl=mi.getAttribute("url");vartxt=mi.childNodes[0].nodeValue;tr=tb.insertRow(j);tc=tr.insertCell(0);tc.innerHTML="<ahref="+url+">"+txt+"</a>";}}}else{alert("你用的什么浏览器?");}}</script></head><body><inputtype="button"value="显示"onclick="show()"><tableid="tb"></table></body></html>

你xml太强差不少标签
解决方案九:
那个insertRow()从前往后插,不知道有没有好的方法倒过来
解决方案十:
完全按你的要求写的,优化了一下<html><head><title></title><scripttype="text/javascript">functionshow(){if(window.XMLHttpRequest){xmlhttp=newXMLHttpRequest();}else{xmlhttp=newActiveXObject("Microsoft.XMLHTTP");}if(xmlhttp!=null){xmlhttp.open("GET","xmlname.xml",false);xmlhttp.send(null);varresponsexml=xmlhttp.responseXML;varmenus=responsexml.getElementsByTagName("Menus")[0];varhtml="";for(vari=0;i<menus.childNodes.length;i++){varmenu=menus.childNodes[i];html=html+"<h1>"+menu.getAttribute("name")+"</h1><br>";html=html+"<h2>"+menu.childNodes[0].getAttribute("name")+"</h2><br>";for(varj=0;j<menu.childNodes[0].childNodes.length;j++){varmi=menu.childNodes[0].childNodes[j];varurl=mi.getAttribute("url")+"<br>";vartxt=mi.childNodes[0].nodeValue;html=html+"<ahref=""+url+"">"+txt+"</a>";}}document.getElementById("tb").innerHTML=html;}else{alert("你用的什么浏览器?");}}</script></head><bodyonload="show()"><divid="tb"></div></body></html>

时间: 2024-08-31 00:22:50

Xml循环问题的相关文章

xml-为什么在C++用智能指针循环打开XML文件时指针释放时出错

问题描述 为什么在C++用智能指针循环打开XML文件时指针释放时出错 小弟在VS2012中用C++编一个打开XML的程序中遇到了些问题.我打开XML的方法是通过打开一个索引XML文件(Index)然后获得子XML文件的路径,然后在根据这些路径用循环的方式打开子XML文件获取里面的信息.但是,我的程序不知道为什么出错,当子XML是只有一个时,程序就可以正常运行,当子XML是多个的时候,程序就提升出错,有数据中断.我设了断点查看错误原因,具体是在读完子XML,并进行完xmlfile.UnLoadXM

xml-C++用智能指针循环打开XML文件时指针释放时出错

问题描述 C++用智能指针循环打开XML文件时指针释放时出错 小弟在VS2012中用C++编一个打开XML的程序中遇到了些问题.我打开XML的方法是通过打开一个索引XML文件(Index)然后获得子XML文件的路径,然后在根据这些路径用循环的方式打开子XML文件获取里面的信息.但是,我的程序不知道为什么出错,当子XML是只有一个时,程序就可以正常运行,当子XML是多个的时候,程序就提升出错,有数据中断.我设了断点查看错误原因,具体是在读完子XML,并进行完xmlfile.UnLoadXML()后

java socket 用数组缓冲循环读取xml数据随机个别中文乱码

问题描述 javasocket用数组缓冲循环读取xml数据随机个别中文乱码关键代码byte[]buf=newbyte[1024]while(...){len=in.read(-)stringbuilder.append(newstring(buf,0,len,"gb2312"))}注意,是最终结果随机个别中文乱码谢谢 解决方案 解决方案二:这样当然会随机乱码,直接以字符流读取就好了.如果你还是要用字节流读取的话,那你要一次性把所有的字节全部读取之后,然后再转成字符串就好了.乱码的原因是

js与xml交互理论和示例

---------------------------------------------------js+xml--------------------------------------------------------------------------- DOM2级在 document.implementation 中引入了 createDocument() 方法. IE9+. Firefox. Opera. Chrome 和 Safari 都支持这个方法. 想一想, 或许你还记得可以

JSP与XML的结合

js|xml 综述:可扩展标注语言(eXtensible Markup Language,XML)正被迅速的运用于业界,它已作为与平台.语言和协议无关的格式描述和交换数据的广泛应用标准.XML和它的辅助规范可用于描述数据的文档表现,描述XML文档类型的限制,描述XML文档和资源之间的链接,描述XML文档的自动转换和格式化. 如何开发自定义标签库? 我使用JSP和ASP编程已经有一段颇长的时间了,在两种服务器端的编程方式中,我越来越觉得JSP的功能要强大得多.不提别的,其中JSP的标签库就是我选择

将多个路径字符串转换成XML文档树

假设有下面的字符串: ? 1 2 3 4 5 6 7 /home/usr/abc/def/文本.txt /home/usr/desktop/音乐.mp3 /etc/init.d/mysql/mysql /etc/profile /tmp/垃圾.tmp /usr/bin/open-jdk7/java ... 给定一个根节点名字root和叶子节点名字leaf,如何将它们转换成一颗像下面这样的XML文档树呢? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

PHP的XML模式详解

研究与 php(做为现在的主流开发语言) 5 捆绑在一起的 xml(标准化越来越近了)Reader 库,它使 php(做为现在的主流开发语言) 页面能够以高效的流模式来处理 xml(标准化越来越近了) 文档. php(做为现在的主流开发语言) 5 引入了新的类 xml(标准化越来越近了)Reader,用于读取可扩展标记语言(Extensible Markup Language,xml(标准化越来越近了)).与 Simplexml(标准化越来越近了) 或文档对象模型(Document Object

PHP5的XML新特性

php5|xml 面向的读者 这篇文章的面向对象是所有对PHP5的XML新功能感兴趣的各个水平的PHP开发者.我们假定读者掌握XML的基本知识.然而,如果你已经在你的PHP当中使用了XML,那么这篇文章也会让你受益非浅. 介绍 在当今的互联网世界,XML已经不再是一个时髦词了,它已经被广泛的接受和规范的使用了.因此相对于PHP4,PHP5对于XML的支持更受到了重视.在PHP4中你面对的几乎都是非标准,API中断,内存泄漏以及其它不完全的功能.尽管有些不足已经在PHP4.3中得到改进,开发者们还

用VB.NET和XPath简化XML导航

xml|导航 用VB.NET进行XML导航 XML文档可能包含1~1000个或者更多的元素.你可能需要访问XML文档包含的全部数据,或者访问这些数据的一个选定的子集.XPath提供了定位和选择XML子集的语法,从而简化了这一任务..NET框架使用XPathNavigator类来执行XPath命令,但要想利用它,必须有一个可用的XML文档. 可用.NET XPathDocument类来处理一个XML文档的创建或检索.这个类提供了大量方法和属性,但我们重点关注的是CreateNavigator方法.