html获取xml的数据,html显示xml文件数据

  • Post author:
  • Post category:其他


html显示xml文件数据

发布时间:2020-04-22 13:48:12

来源:亿速云

阅读:239

作者:小新

本篇文章和大家了解一下html显示xml文件数据。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

有的时候我们需要在html显示xml,比如我们修改了xml,点击保存,需要在页面显示xml源码,让我们知道xml已经修改了,最好的方法是把xml放到pre元素中,但是会发现没有换行,全部显示一行,肯定很难看,所以我做了一个迭代xmlDOM的函数来格式显示xml的函数,

迭代函数思路:

1.每个xml文件时有无数个兄弟节点组成,但是终有最后截止的一个,那么循环结束的标志就是当一个节点没有兄弟节点时,循环就结束,

那么可以循环兄弟节点,于是有循环兄弟节点函数

2每个节点可能有子节点,子节点也可能有兄弟子节点,这个时候利用循环兄弟节点函数,循环节点的第一个子节点,

效果图:

5645b0ad23a8b6e24e183ce92368b829.png

主要代码:private void getXMLStr(XmlDocument xmlDoc)

{

foreach (XmlNode node in xmlDoc.ChildNodes)

{

if (node.NodeType == XmlNodeType.Element)

{

getNext(node,0);

}

else

{

xml = ”

” + node.OuterXml.Replace(“”,”>”);

}

}

}

private void getNext(XmlNode node,int i)

{

if (node.NextSibling == null)//如果没有兄弟节点

{

if (node.HasChildNodes)

{

//如果有子节点

if (node.FirstChild.NodeType != XmlNodeType.Text)

{

//getXmlAttribute(node) 获取节点的所有属性

//如果子节点的子节点不是text类型

xml = xml + ”

getNext(node.FirstChild, i + 1);

xml = xml + ”

“+ node.Name +”>

“;

}

else

{

//如果子节点的子节点不是text类型

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

}

else

{

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

}

else

{

if (node.HasChildNodes)

{

if (node.FirstChild.NodeType != XmlNodeType.Text)

{

xml = xml + ”

getNext(node.FirstChild, i + 1);

xml = xml + ”

“+ node.Name + “>

“;

}

else

{

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

}

else

{

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

getNext(node.NextSibling,i);

}

}

private string getXmlAttribute(XmlNode node)

{

string rtn=string.Empty;

foreach (XmlAttribute attr in node.Attributes)

{

rtn +=” “+ attr.Name + “=” + attr.Value;

}

return rtn;

}

源码:

showXML.aspx

读取xml

function showXml() {

$.ajax({

url: ‘showXML.aspx?action=create&rnd’ + Math.random(),

type: ‘post’,

cache: false,

async: false,

success: function (result) {

if (result != ”) {

result = result.toString();

$(“#pre_xml”).show().html(”).append(result);

}

else {

alert(‘读取数据失败!’);

}

}

});

}

$(document).ready(function () {

showXml();

});

function hideXml() {

$(“#pre_xml”).hide();

}


showXML.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Xml;

using System.Web.UI.HtmlControls;

public partial class showXML : System.Web.UI.Page

{

public string xml = string.Empty;

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

}

if (Request.QueryString[“action”] != null && Request.QueryString[“action”].ToString() != “”)

{

switch (Request.QueryString[“action”].ToString())

{

case “create”:

Response.Clear();

Response.Write(showXml());

Response.End();

break;

default:

break;

}

}

}

///

/// 在html显示xml

///

/// 文件名字

private string showXml()

{

string rtn = string.Empty;

string path = Server.MapPath(“Xml\\”) + “示例_创建” + “.xml”; //xml文件路径

if (File.Exists(path))

{

XmlTextReader xmlRead = new XmlTextReader(path);//xml只读类

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlRead);

xmlRead.Close();

getXMLStr(xmlDoc);

rtn = xml;

}

return rtn;

}

private void getXMLStr(XmlDocument xmlDoc)

{

foreach (XmlNode node in xmlDoc.ChildNodes)

{

if (node.NodeType == XmlNodeType.Element)

{

getNext(node,0);

}

else

{

xml = ”

” + node.OuterXml.Replace(“”,”>”);

}

}

}

private void getNext(XmlNode node,int i)

{

if (node.NextSibling == null)//如果没有兄弟节点

{

if (node.HasChildNodes)

{

//如果有子节点

if (node.FirstChild.NodeType != XmlNodeType.Text)

{

//getXmlAttribute(node) 获取节点的所有属性

//如果子节点的子节点不是text类型

xml = xml + ”

getNext(node.FirstChild, i + 1);

xml = xml + ”

“+ node.Name +”>

“;

}

else

{

//如果子节点的子节点不是text类型

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

}

else

{

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

}

else

{

if (node.HasChildNodes)

{

if (node.FirstChild.NodeType != XmlNodeType.Text)

{

xml = xml + ”

getNext(node.FirstChild, i + 1);

xml = xml + ”

“+ node.Name + “>

“;

}

else

{

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

}

else

{

xml = xml + ”

” + node.OuterXml.Replace(“”, “>”) + ”

“;

}

getNext(node.NextSibling,i);

}

}

private string getXmlAttribute(XmlNode node)

{

string rtn=string.Empty;

foreach (XmlAttribute attr in node.Attributes)

{

rtn +=” “+ attr.Name + “=” + attr.Value;

}

return rtn;

}

}

示例_创建.xml源码

注意:xml路径与后天获取的xml的路径要一致,我的路径是程序根目录xml文件夹下

示例_创建.xml源码

11

12

13

14

15

16

21

22

23

24

25

26

以上就是html显示xml文件数据的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎来亿速云行业资讯!