如何在xml文件中按标签名称查找值?使用C#.net 2.0
我的xmldocument中只有10个不同的节点。
我不想写xpath。我认为有一个自动查找属性。
答案 0 :(得分:0)
无法记住确切的语法,但写了一个Xpath查询,然后使用XPathNavigator.Select
来查找它。
编辑:请记住,我认为它类似//@tagname
,所以如果你XPathNavigator.Select("//@tagname")
,我认为它会起作用。假设使用标记表示属性,如果您正在查找元素,则它应该只是//tagname
。
答案 1 :(得分:0)
请参阅此完整函数获取节点值以及xml文件中的属性值...
public string GetXmlNodeValue(string xmlfilePath, string TagName, string Attribute)
{
XmlDocument objXML = new XmlDocument();
bool IsNodeValuefound = false;
string Value = string.Empty;
try
{
if (File.Exists(xmlfilePath))
{
objXML.Load(xmlfilePath);
XmlNode xNode = objXML.DocumentElement.FirstChild;
while (xNode != null)
{
if (string.Compare(xNode.Name, TagName, true) == 0)
{
if (!string.IsNullOrEmpty(Attribute))
{
if (xNode.Attributes.GetNamedItem(Attribute) != null)
{
IsNodeValuefound = true;
Value = xNode.Attributes.GetNamedItem(Attribute).Value;
}
}
else
{
IsNodeValuefound = true;
Value = xNode.InnerText.Trim();
}
}
xNode = xNode.NextSibling;
}
}
if (IsNodeValuefound)
return Value;
else
return string.Empty;
}
catch (XmlException xmlEx)
{
throw xmlEx;
}
catch (Exception ex)
{
throw ex;
}
finally
{
objXML = null;
}
}
答案 2 :(得分:0)
简单示例:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(someRawData);
XmlNodeList yourNodes = xmlDoc.GetElementsByTagName("YourTagName");
然后你可以迭代你的节点并获取值。
答案 3 :(得分:0)
我用这个scneirao解决了我的问题:
XmlNodeList nl = xdoc.GetElementsByTagName(“CustomerID”); sb.Append(NL [0] .InnerXml);
答案 4 :(得分:0)
首先,通过这段代码获取XmlDocument:
XmlDocument infodoc = new XmlDocument();
infodoc.LoadXml(xmlString);
如果您的标签如下所示:
<directory value="D:/BACKUPS"></directory>
通过以下方式获取“目录”标签的值:
var directory = infodoc.GetElementsByTagName("directory")[0].Attributes["value"].Value;
如果您的标签如下所示:
<directory>D:/BACKUPS</directory>
通过以下方式获取“目录”标签的值:
var directory = infodoc.GetElementsByTagName("directory")[0].InnerXml;