我在C#中有一个方法,在节点列表arg
中找到名称为node_name
的节点,并返回找到的节点的值(假设只有一个节点具有此类节点)名称)。如果找不到这样的节点,它应该返回一个空字符串。无法从方法内的foreach循环获取返回值
public string get_nodes_value(XmlNodeList arg, string node_name)
{
foreach (XmlNode arg_node in arg)
{
if (!arg_node.HasChildNodes)
{
if (String.Compare(arg_node.ParentNode.Name, node_name) == 0)
{
return arg_node.Value;
}
}
else
{
get_nodes_value(arg_node.ChildNodes, node_name);
}
}
return "";
}
上面的代码总是返回一个空字符串。我在这里错过了什么?
也许你需要不区分大小写的搜索?尝试使用ignorecase枚举的compare函数。 – apoorv020 2010-06-15 12:04:03
您可能想要查看Linq-to-SQL。您可以将其作为一个Linq查询来完成。当我切换到它后,每当看到有人使用旧的对象模型时,我都会哭泣。 – juharr 2010-06-15 12:32:57