2017-02-28 212 views
0


我的XML几乎读取XML文件

xmlns:x="http://schema.metastorm.com/Metastorm.Common.Markup" 

于是开始去属性X:类型

<x:Object 
    x:Name="someName" 
    x:Type="{pref_-1582514068:MboField}"> 

我用这个LINQ查询:与specyfic第十名:

string xmlns = "http://schema.metastorm.com/Metastorm.Common.Markup"; 

IEnumerable<string> values = from x in xdoc.Descendants(xmlns+"Object") 
         where x.Attribute(xmlns+"Type").ToString().EndsWith("MboField}") 
         select x.Attribute(xmlns+"Name").Value.ToString(); 

但是我得到错误(System.Xml.XmlException)说,结肠characte r不能用在名字里面。网址中有一个。
我在做什么错?有没有办法避免使用冒号?

+0

至少,你可以尝试谷歌你的问题标题。这里有很多类似的问题。 –

+3

[如何用命名空间解析XML]可能的重复(http://stackoverflow.com/questions/18230605/how-to-parse-xml-with-namespace) –

+2

我以前有同样的问题。 'xmlns'应该是'XNamespace'。 'var xmlns = XNamespace.Get(“http://schema.metastorm.com/Metastorm.Common.Markup”);'。保持代码的其余部分相同。这是[答案](http://stackoverflow.com/a/9335902/74757)我收到了。 –

回答

0

as Cory提到我用字符串代替xNamespace.get。它应该是:

var xmlns = XNamespace.Get("http://schema.metastorm.com/Metastorm.Common‌​.Markup")