XDocument无法正确读取带有xmlns的xml,如何做?
在silverlight的xml读取,只能用linq to xml,
而我的xml的要结点,
- XML code
<Parameters xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.openxmlformats.org/officeDocument/2011/Soul/Parameters"><ParameterItem><ParameterDataType>String</ParameterDataType><ParameterDefaultValue>3</ParameterDefaultValue><ParameterDesc>编号</ParameterDesc><ParameterDirection>I/O</ParameterDirection><ParameterID>a88491f6-ada3-40a5-bce2-88623823649a</ParameterID><ParameterName>编号</ParameterName></ParameterItem></Parameters>
带有xmlns信息,结果用linq 时,不能正确读取。但如果带那些xmlns信息去掉,是可以正常读取的。
我的linq 是这样用的。
- C# code
var projects = from f in xdoc.Descendants("ParameterItem") select new TableField { ParameterDataType = f.Element("ParameterDataType").Value, ParameterDefaultValue = f.Element("ParameterDefaultValue").Value, ParameterDesc = f.Element("ParameterDesc").Value, ParameterDirection = f.Element("ParameterDirection").Value, ParameterID = f.Element("ParameterID").Value, ParameterName = f.Element("ParameterName").Value };[解决办法]
你可以尝试使用XmlReader读取Xml文件,不一定必须Linq to xml,参考以下文章,可以下载源码看看。
http://www.cnblogs.com/chengxingliang/archive/2011/02/07/1949579.html