我有如下xml
,并希望对其进行分析和阅读每node value
和node title
。我可以阅读,value
但看不到node title
。我用过,reader.Name
但总是返回empty string
。我如何也可以读取节点标题?
string ExceptionDetails="<names><FirstName>John</FirstName><SecondName>White</SecondName></names>";
using (XmlReader reader = XmlReader.Create(new StringReader(ExceptionDetails)))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
while (reader.Read())
{
if (reader.HasValue)
{
sb.Append()+":"; //Read tag title
sb.Append(reader.Value); sb.Append("<br/>");
}
}
}
}
}
结果:
FirstName:John
SecondName:white
您可以使用XmlReader.Name来获取当前节点的名称。对于元素,这是标签名称。为了记住文本之前的最后一个标签名称,需要将其存储在变量中,然后再将其添加到StringBuilder中:
using System;
using System.Xml;
using System.IO;
using System.Text;
public class Test
{
public static void Main()
{
StringBuilder sb = new StringBuilder();
string ExceptionDetails="<names><FirstName>John</FirstName><SecondName>White</SecondName></names>";
using (XmlReader reader = XmlReader.Create(new StringReader(ExceptionDetails)))
{
string tagName = string.Empty;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
tagName = reader.Name;
else if (reader.NodeType == XmlNodeType.Text)
{
sb.Append(tagName);
sb.Append(":"); //Read tag title
sb.Append(reader.Value); sb.Append("<br/>");
}
}
}
Console.WriteLine(sb.ToString());
}
}
您可以在此处运行示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句