我用
XmlTextReader aXmlTextReader = new XmlTextReader(XmlFileName);
的方式读取xml,xml里面有很多binhex编码的图片,我利用
aXmlTextReader.ReadBinHex
的方法读取并转换成图片xml的格式是这样的 <图片1>....</图片1><图片2>......<图片2>我用while (aXmlTextReader.Read())来循环读取,判断Nodetype和节点名字来判断,
但是我单步跟踪发现,读取的顺序是 "<图片1>"→"图片1节点内容"→"</图片2>"
好像没有认为<图片2>是一个节点,当我在“</图片1><图片2>”之间加一个回车,这个问题就正常了但是,这个xml是另外一个地方传送过来的,这个文件我是改不了的。我想问一下,有没有什么方法解决这个问题,或者,有没有.net 有没有整理xml为正规格式的方法之类的呢?
XmlTextReader aXmlTextReader = new XmlTextReader(XmlFileName);
的方式读取xml,xml里面有很多binhex编码的图片,我利用
aXmlTextReader.ReadBinHex
的方法读取并转换成图片xml的格式是这样的 <图片1>....</图片1><图片2>......<图片2>我用while (aXmlTextReader.Read())来循环读取,判断Nodetype和节点名字来判断,
但是我单步跟踪发现,读取的顺序是 "<图片1>"→"图片1节点内容"→"</图片2>"
好像没有认为<图片2>是一个节点,当我在“</图片1><图片2>”之间加一个回车,这个问题就正常了但是,这个xml是另外一个地方传送过来的,这个文件我是改不了的。我想问一下,有没有什么方法解决这个问题,或者,有没有.net 有没有整理xml为正规格式的方法之类的呢?
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{ if (reader.Name == "图片1")
{ }
if (reader.Name == "图片2")
{ } }
}
这样读梅问题。关键是你的xml有错误<图片1>.... </图片1> <图片2>...... </图片2> 要不就用xmldocument 的xmlpath
如果上游传过来的东西错的为什么要你自己来承担?
XML格式如果良好的话,xmlreader是不会 忽略任何一个节点的。
要求他们传过来一个格式良好的XML ,或者按照你给的SCHEMA 传XML
可以用
XMLDocument来读取