[英]How to get only nodes of root node in xml in c#
我正在嘗試解析xml文件。 它提供了根的所有節點,但我只需要子節點,不需要孫子節點。 我怎么能得到那些? 我的xml是:
<Pdf_Format>
<SpaceSep>0</SpaceSep>
<text> GLOBUS</text>
<LineSep>2</LineSep>
<text>***************************************</text>
<LineSep>1</LineSep>
<SpaceSep>3</SpaceSep>
<text>Maxus Mall 2nd Floor S/11Timba</text>
<LineSep>1</LineSep>
<SpaceSep>3</SpaceSep>
<text>Near Hyover Bridge Bhayander</text>
<LineSep>1</LineSep>
<SpaceSep>0</SpaceSep>
<text> 022-28170870</text>
<LineSep>2</LineSep>
<text>=======================================</text>
<LineSep>1</LineSep>
<text>=======================================</text>
<LineSep>1</LineSep>
<param>ReprintBill</param>
<LineSep>1</LineSep>
<SpaceSep>3</SpaceSep>
<text>Qty</text>
<SpaceSep>4</SpaceSep>
<text>Item</text>
<SpaceSep>3</SpaceSep>
<SpaceSep>6</SpaceSep>
<text>Price</text>
<SpaceSep>5</SpaceSep>
<text>Total</text>
<SpaceSep>2</SpaceSep>
<LineSep>1</LineSep>
<SpaceSep>3</SpaceSep>
<text>---</text>
<SpaceSep>4</SpaceSep>
<text>----</text>
<SpaceSep>3</SpaceSep>
<SpaceSep>6</SpaceSep>
<text>-----</text>
<SpaceSep>5</SpaceSep>
<text>-----</text>
<SpaceSep>2</SpaceSep>
<LineSep>1</LineSep>
<product>
<SpaceSep>3</SpaceSep>
<param>Qty</param>
<SpaceSep>3</SpaceSep>
<param>ItemID</param>
<SpaceSep>1</SpaceSep>
<param>PriceSubDisc</param>
<SpaceSep>1</SpaceSep>
<param>TotalSubDisc</param>
<LineSep>1</LineSep>
<param>TN</param>
<SpaceSep>6</SpaceSep>
<param>Desc</param>
<LineSep>1</LineSep>
<SpaceSep>16</SpaceSep>
<param>ActualPrice</param>
<LineSep>1</LineSep>
<param>Reason</param>
<LineSep>1</LineSep>
</product>
<LineSep>2</LineSep>
<SpaceSep>11</SpaceSep>
<text>Sub Total </text>
<SpaceSep>5</SpaceSep>
<param>SubTotal</param>
<LineSep>1</LineSep>
<SpaceSep>11</SpaceSep>
<text>Tax </text>
<SpaceSep>5</SpaceSep>
<param>Tax</param>
<LineSep>2</LineSep>
<SpaceSep>11</SpaceSep>
<text>Final Total </text>
<SpaceSep>5</SpaceSep>
<param>FinalTotal</param>
<Transactions>
<LineSep>1</LineSep>
<SpaceSep>11</SpaceSep>
<param>Mode</param>
<SpaceSep>5</SpaceSep>
<param>Amount</param>
</Transactions>
<LineSep>1</LineSep>
<SpaceSep>1</SpaceSep>
<text>Sales Associate:</text>
<param>CashierName</param>
<LineSep>1</LineSep>
<text>========================================</text>
<LineSep>1</LineSep>
<text>CST TIN:27020000519C W.E.F. 01-04-2006</text>
<LineSep>1</LineSep>
<text>VAT TIN:27020000519V W.E.F. 01-04-2006</text>
<LineSep>1</LineSep>
<text>No Exchange and No Refunds</text>
<LineSep>1</LineSep>
<text>========================================</text>
<LineSep>1</LineSep>
<SpaceSep>1</SpaceSep>
<text>Trx</text>
<SpaceSep>2</SpaceSep>
<param>BillId</param>
<SpaceSep>2</SpaceSep>
<param>StoreCode</param>
<SpaceSep>2</SpaceSep>
<param>Counter</param>
<SpaceSep>2</SpaceSep>
<param>BillDate</param>
<SpaceSep>2</SpaceSep>
<param>BillTime</param>
<LineSep>6</LineSep>
</Pdf_Format>
為了獲得節點,我編寫了以下語句:
XDocument loadedData = XDocument.Load(XMLFilePath);
foreach (XElement node in loadedData.Descendants())
所以在此xml中, 我不希望 Product和Transactions的childnodes請幫助我。
我這樣解決了自己。
foreach (XElement node in loadedData.Descendants())
{
if ((node.Parent != null && (node.Parent.Name.LocalName == "product")))
{
if ((node.Parent != null && node.Parent.Name.LocalName == "Transactions"))
{ }
}
else
{
//some code here
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.