我有以下xml結構:
<TacRef>
<TacRefData Num="0">
<MainData>
<Name>Name 1</Name>
<PicName>PicName 1</PicName>
</MainData>
<CategoryData Num="0">
<CategoryTitle>General Information</CategoryTitle>
<CategoryDescription>CategoryDescription 0</CategoryDescription>
</CategoryData>
<CategoryData Num="1">
<CategoryTitle>Dimensions</CategoryTitle>
<CategoryDescription>CategoryDescription 1</CategoryDescription>
</CategoryData>
<RwrData>
<Index>0</Index>
<Image>0</Image>
<SearchTone>0</SearchTone>
<LockTone>0</LockTone>
<Name>No Radar</Name>
</RwrData>
</TacRefData>
<TacRefData Num="1">
<MainData>
<Name>Name 1</Name>
<PicName>PicName 1</PicName>
</MainData>
<CategoryData Num="0">
<CategoryTitle>General Information</CategoryTitle>
<CategoryDescription>CategoryDescription 0</CategoryDescription>
</CategoryData>
<CategoryData Num="1">
<CategoryTitle>Dimensions</CategoryTitle>
<CategoryDescription>CategoryDescription 1</CategoryDescription>
</CategoryData>
<RwrData>
<Index>0</Index>
<Image>0</Image>
<SearchTone>0</SearchTone>
<LockTone>0</LockTone>
<Name>No Radar</Name>
</RwrData>
</TacRefData>
</TacRef>
我正在嘗試僅為名稱包含“SA-”和 CategoryData Num="4" 獲取每個節點名稱和 CategoryData/CategoryDe??scription(在上面的示例中我沒有顯示 Num="4")
我可以找到包含“SA-”的名稱,但我不知道如何僅獲取具有 Num="4" 的 CategoryData。
我正在這樣做:
public class RefReader
{
private string _refFile = @"c:\....\TacRefDB.xml";
public XmlDocument xDoc;
public RefReader()
{
xDoc = new XmlDocument();
xDoc.Load(_refFile);
var nodes = xDoc.SelectNodes("TacRef/TacRefData");
foreach (XmlNode productNode in nodes)
{
var name = productNode["MainData"]["Name"].InnerXml;
if (name.Contains("SA-"))
{
Console.WriteLine(name);
//here I want to get productNode["CategoryData"]["CategoryDescription"] with Num="4" => how do I do that?
}
}
}
}
}
uj5u.com熱心網友回復:
我相信您可以在一個 XPATH 查詢中獲得名稱和CategoryData/CategoryDe ??scription。
因此,根據需要修改下面的查詢,然后嘗試:
//TacRefData[starts-with(./MainData/Name,'EC')]/(./MainData/Name|./CategoryData[@Num='0']/CategoryDescription)
結果將是:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/515709.html
標籤:C#xml
上一篇:如何停止在回圈中多次觸發Console.ReadLine()命令?
下一篇:IndexOf和謂詞