📄 xmlreader.aspx
字号:
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Data" %>
<html>
<head>
<title>XmlReader Demo</title>
<style>
.expandable { text-decoration:underline; cursor:hand; }
</style>
<script language="JavaScript">
function OnToggleTOCLevel1()
{
var elemSrc = window.event.srcElement;
var elemLevel2 = document.all(elemSrc.level2ID);
if (elemLevel2.style.display == 'none')
elemLevel2.style.display = '';
else
elemLevel2.style.display = 'none';
}
</script>
<script language="C#" runat="server">
public int i = 0;
class Node
{
public string Name;
public string Text;
public Node Parent;
public ArrayList ChildrenNodes;
public Node()
{
ChildrenNodes = new ArrayList();
Text = "";
}
}
Node ReadXmlToNode(string file)
{
Node topNode = null;
Node currentNode = topNode;
XmlTextReader reader = new XmlTextReader(file);
try
{
while(reader.Read())
{
switch(reader.NodeType)
{
case XmlNodeType.Element:
if(topNode != null)
{
//Check if current node is empty
if(currentNode == null)
throw(new XmlException("Bad Xml.", null));
// Create new node and add it to current node
Node newNode = new Node();
currentNode.ChildrenNodes.Add(newNode);
// Set new node attribute
newNode.Name = reader.Name;
newNode.Parent = currentNode;
// swap current node
currentNode = newNode;
}
else
{
topNode = new Node();
topNode.Parent = null;
topNode.Name = reader.Name;
currentNode = topNode;
}
break;
case XmlNodeType.EndElement:
currentNode = currentNode.Parent;
break;
case XmlNodeType.Text:
currentNode.Text = reader.Value;
break;
}
}
if(currentNode != null)
throw(new XmlException("Bad Xml.", null));
}
catch(XmlException e)
{
Response.Write(e.ToString());
return null;
}
finally
{
reader.Close();
}
return topNode;
}
string ShowNode(Node node)
{
string childrenName = node.Name + "children" + i.ToString();
i++;
// Add start marker
string nodeString = "";
nodeString += "<div class=expandable onclick=\"OnToggleTOCLevel1()\"";
nodeString += " level2ID=\"" + childrenName + "\">";
nodeString += node.Name;
nodeString += (node.Text == "")? "" : ":" + node.Text;
nodeString += "</div>\n";
nodeString += "<div id=\"" + childrenName + "\" style=\"display: none;\">";
nodeString += "\n<ol>";
// Iterate the child node collection
foreach(Node child in node.ChildrenNodes)
nodeString += "<li>" + ShowNode(child) + "</li>\n";
// Add end marker
nodeString += "</ol></div>";
return nodeString;
}
void Page_Load()
{
Node topNode = ReadXmlToNode(Server.MapPath("example.xml"));
Text1.Text = ShowNode(topNode);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Literal id="Text1" runat="server" />
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -