C#XMLReader ReadString如何读取所有包含元素中嵌套的xml?如下 1. Apple 2. Banana
1. Apple 2. Banana
和我的代码样本数据
XmlReader xmlr = XmlReader.Create(myxmlfile);
while (xmlr.Read())
{
if ((xmlr.IsStartElement()) && (xmlr.Name == "HTML"))
{
// this will return blank string!
html = xmlr.ReadString();
}
}
我需要的<B>1.</B> Apple
满弦我怎么能读取ReadString HTML元素中的一切()?
如果结构是固定的,你知道的元素之前,那么你可以这样做:
List<string> bananas = new List<>string();
string contents = string.Empty;
xmlr.ReadToFollowing("HTML");
do
{
contents = xmlr.ReadInnerXML();
if(!string.IsNullOrEmpty(contents))
{
bananas.Add(contents);
}
}while(!string.IsNullOrEmpty(contents))
我修改了代码 而(xmlr.Read()){ 如果 ((xmlr.IsStartElement())&&(xmlr.Name == “HTML”)){ xmlr.ReadToFollowing( “HTML” ); html = xmlr.ReadInnerXml(); } } 但它只会得到的值2.香蕉 – Eddi 2014-11-23 06:05:42
您能否在您的问题中粘贴所需的输出?你想把所有的HTML元素作为单独的字符串吗?你得到一个单一的HTML元素,这就是你要求的权利?如果有两个元素,则每次在While循环中覆盖该值。你应该把html + = xmlr.ReadInnerXMl()而不是html = xmlr.ReadInnerXml() – 2014-11-23 06:24:40
好吧,其实我需要将所有的html存储到列表中 var htmllist = new List
是什么在这里你的要求? xml的结构是否固定?你想阅读的元素的名称会事先知道吗? – 2014-11-23 04:26:23
是的,XML结构是固定的,在这种情况下元素的名称“HTML”是事先已知的。 – Eddi 2014-11-23 04:50:53