C#XmlReader冒号问题(命名空间)

时间:2012-07-13 07:09:43

标签: c# feed atom-feed

我对XMLReader类有一个奇怪的问题。我从URL获取原子提要,并且xml树的一些元素的命名如下:

<element:title>Hello World!</element:title>
<element:text>This is just an example</element:text>
<element:id>1</element:id>

我正在使用

[XmlElement("element:id")]

但这不起作用。当我查看代码时,我看到读者将其解析为

element_x003A_id

但如果我使用

[XmlElement("element_x003A_id)]

我一无所获。我试图摆弄Xml​​编码,但该属性是只读的。我怎么能逃避这个,所以我可以得到元素的内容(如果元素没有分号就可以正常工作)?

1 个答案:

答案 0 :(得分:4)

element是名称空间别名。在某个地方,你有(通常在文件的顶部)

<foo ... xmlns:element="http://something/blah/blog">

“http:// something / blah / blog”非常重要。基本上,你需要:

[XmlElement("id", Namespace="http://something/blah/blog")]
public int Id {get;set;}

或者因为它会被重复使用:

const string MyNamespace = "http://something/blah/blog";
//...
[XmlElement("id", Namespace=MyNamespace)]
public int Id {get;set;}