XmlNodeList.SelectSingleNode()返回null,针对不同的XML格式
问题描述:
我有一个XML这样的:XmlNodeList.SelectSingleNode()返回null,针对不同的XML格式
<configuration>
<connectionStrings>
<add name="name1" value="value1">
<add name="name2" value="value2">
</connectionStrings>
<configuration>
在此,我得到
XmlNodeList nodeList = doc.GetElementsByTagName("connectionStrings");
foreach(XmlNode xn in nodeList)
{
var anode = xn.SelectSingleNode("add");
}
这里的 “VAR阳极” 正在恢复我的正确的价值观“名称“属性。 但是,当我的XML是这样的:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="name1" value="value1">
<add name="name2" value="value2">
</connectionStrings>
<configuration>
我得到阳极为空。
请帮忙。
答
下面的代码对我的作品:
var xElement = XElement.Load("Sample.xml");
var elements = xElement.Elements().Elements();
foreach (var element in elements)
{
var name = element.Attribute("value").Value;
}
请试试这个。
注:sample.xml中包含:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="name1" value="value1"/>
<add name="name2" value="value2"/>
</connectionStrings>
</configuration>
您发布的XML文件,因此未接近正常。上面的XML格式正确。
+0
我可以知道为什么不投票。只是想知道我错过了什么。该代码适用于我。 – Pabdev
您需要在查询中使用命名空间。请参阅[XmlDocument.SelectSingleNode和xmlNamespace问题](https://stackoverflow.com/questions/4171451/xmldocument-selectsinglenode-and-xmlnamespace-issue)。此外,'GetElementsByTagName()'已弃用。从[文档](https://msdn.microsoft.com/en-us/library/dc0c9ekk(v = vs.110).aspx):*建议您使用XmlNode.SelectNodes或XmlNode.SelectSingleNode方法而不是GetElementsByTagName方法。* – dbc