我这里有一段遍历xml文件的代码,他能便利所有的节点和打印属性,也许有帮助
dim reader as ZXMLReader
dim i as integertry
reader = new XMLTextReader(Server.MapPath("books.xml"))
while reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
if reader.HasAttributes then
for i = 0 to reader.AttributeCount - 1
Response.Write(reader.GetAttributes(i) & "")
next
Response.Write("<br>")
end if
Case....
end Select
end while
cath ex as Exception
......
finally
......
end try
dim reader as ZXMLReader
dim i as integertry
reader = new XMLTextReader(Server.MapPath("books.xml"))
while reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
if reader.HasAttributes then
for i = 0 to reader.AttributeCount - 1
Response.Write(reader.GetAttributes(i) & "")
next
Response.Write("<br>")
end if
Case....
end Select
end while
cath ex as Exception
......
finally
......
end try
思归的方法能够根据属性查找到节点:但是我希望根据属性找到这个节点之后,再把这个节点下的全部子结点的value(全是字符)给显示到页面上来。这个时候我就不知道该怎么办了?
我现在采用的方法是用DOM的 SelectNodes方法找到节点,这时只要找到节点就很容易的把该节点的子节点的value打印出来。但我却不知道在SelectNodes中如何用属性去查节点。
所以我现在只会用这两种方法中的一半。
{
if (node.HasChildNodes)
foreach(XmlNode nn in node.ChildNodes)
DisplayNode(nn);
else
Response.Write(node.InnerText);
}foreach (XmlNode node in doc.SelectNodes("//book[@genre='novel2' and @publicationdate='1992']"))
{
DisplayNode(node);
}