我正在嘗試編寫一個將解析我的XML樹(實際上是將SQL解構成XML樹)的Linq查詢。使用LINQ使用格式化讀取XML
我的XML看起來像這樣
<SqlRoot>
<SqlStatement>
<Clause>
<OtherKeyword>select</OtherKeyword>
<WhiteSpace></WhiteSpace>
<Other>t1</Other>
<Period>.</Period>
<Other>empid</Other>
<WhiteSpace></WhiteSpace>
</Clause>
<Clause>
<OtherKeyword>from</OtherKeyword>
<SelectionTarget>
<WhiteSpace></WhiteSpace>
<Other>bd_orm</Other>
<Period>.</Period>
<Other>dbo</Other>
<Period>.</Period>
<Other>bal_impacts_t</Other>
<WhiteSpace></WhiteSpace>
<Other>t1</Other>
</SelectionTarget>
</Clause>
</SqlStatement>
</SqlRoot>
我想挑出表名(SelectionTarget
節點)。 WhiteSpace
節點在值之間是空白/空格。
所以我期望的輸出是這樣的bd_orm.dbo.bal_impacts_t t1
,但我無法弄清楚如何通過在中間加入whitespace
來做到這一點。
我想這
var xxx = (from res in xDoc.Descendants("Clause").Descendants("SelectionTarget") select res);
Console.WriteLine(xxx.DescendantNodesAndSelf().OfType<XElement>().First().Value);
,但它顯然不能,因爲我不知道該如何兼顧whitespace
節點和轉換是爲實際whitespace
。有什麼建議麼?