[英]How do I get a specific element in a XML document?
我有一個看起來像這樣的 XML 文件:
<Info>
<ID>1</ID>
<Result>
<ID>2</ID>
</Result>
</Info>
我想計算這個文件中有多少信息/結果/ID。 我正在這樣做:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("myFile.xml");
xmlNodeList MyList = xmlDoc.GetElementsByTagName("Info/Result/ID");
int totalCount = MyList.Count;
// other logic...
GetElementsByTagName
方法找不到任何“ID”字段。 我想得到“ID = 2”。
我怎么做?
嘗試這個..
var count = xmlDoc.SelectNodes("Info/Result/ID")?.Count ?? 0;
計算 value = 2 的節點
var nodes = xmlDoc.SelectNodes("Info/Result/ID");
var count = 0;
foreach (XmlNode node in nodes)
if(node.InnerText == "2")
count++;
在“信息/結果/ID”路徑中查找所有 id
var nodes = xmlDoc.SelectNodes("Info/Result/ID");
var set = new HashSet<String>(); // use list if you want
foreach (XmlNode node in nodes)
set.Add(node.InnerText);
搞定了,方法如下:
公共 static 無效 MyCountExample(字符串 myXml,出 int myID)
{
var stream = new MemoryStream(Encoding.UTF8.GetBytes(myXml ?? ""));
var reader = XmlReader.Create(stream);
myID= 0;
reader.IsStartElement("Info");
while (!reader.EOF)
{
if (reader.ReadToFollowing("Result"))
{
if (reader.ReadToDescendant("ID"))
{
myID++;
else
{
return somethingElse();
}
......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.