读取XML给出null

时间:2015-03-30 06:38:10

标签: c# xml c#-4.0 xml-parsing c#-3.0

<tours xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://api.contiki.com/schemas/v2/detailed_tours.xsd">
<tour>
  <id>290</id>
  <name>Peru Uncovered</name>
  <lowest_price>
    <code>11D15a</code>
  </lowest_price>
 </tour>
</tours>

我想阅读Id, namecode。 我正在尝试这段代码

XmlTextReader reader = new XmlTextReader(downloadfolder);

XmlDocument doc = new XmlDocument();
XmlNode node = doc.ReadNode(reader);

foreach (XmlNode chldNode in node.ChildNodes)
{
    string employeeName = chldNode.Attributes["name"].Value;
}

但是我变得无效了。任何人都可以告诉我如何阅读价值观?我不能使用Linq,因为我在SSIS 2008项目中工作,该项目不支持linq。

更新的答案

XmlTextReader reader = new XmlTextReader(downloadfolder);
while (reader.Read())
{
    switch (reader.NodeType)
    {
        case XmlNodeType.Element: // The node is an element.

            string node = reader.Name;
            if (node == "id")
            {
                string id = reader.ReadString();
            }
            if (node == "name")
            {
                string name = reader.ReadString();
            }
            if (node == "code")
            {
                string code = reader.ReadString();
            }
            break;
    }

我可以读取值但是如何在数据表中添加这些值?

1 个答案:

答案 0 :(得分:0)

此处节点类型为&#34; name&#34;是元素。

下面的代码可以用于节点类型检查

XmlTextReader reader = new XmlTextReader ("<file name>");
            while (reader.Read()) 
            {
                switch (reader.NodeType) 
                {
                    case XmlNodeType.Element: 

参考:http://support.microsoft.com/en-us/kb/307548