c#中的xml阅读器和命名空间

时间:2013-03-02 23:40:54

标签: c# xml-namespaces xmlreader

我正在尝试使用xml阅读器读取xml数据,xml文件包含很多前缀,所以我在XmlNamespaceManager中包含了名称空间,示例代码

using (XmlReader reader = new XmlTextReader(fileName))
{
    XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);
    nsmanager.AddNamespace("s", "http://www.google.com/shopping/api/schemas/2010");
    while (reader.Read())
    {
        switch (reader.Name)
        {
            case "s:name":
                Console.WriteLine(reader.Name);
                break;
            case "s:condition": 
                Console.WriteLine(reader.Name);
                break;
        }
    }
}

它输出空行,这是包含命名空间的正确方法吗?

在vb.net中,我将名称空间导入为

Imports <xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Imports <xmlns:msxsl="urn:schemas-microsoft-com:xslt">
Imports <xmlns:rh="ReportHub">
Imports <xmlns="http://www.w3.org/2005/Atom">
Imports <xmlns:gd="http://schemas.google.com/g/2005">
Imports <xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">
Imports <xmlns:s="http://www.google.com/shopping/api/schemas/2010">

1 个答案:

答案 0 :(得分:1)

使用reader.ReadElementString而不是reader.Value

解决了问题