读书人

XDocument无法正确读取带有xmlns的xml

发布时间: 2012-04-14 17:14:21 作者: rapoo

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

读书人网 >CAD教程

热点推荐