簡體   English   中英

如何在C#中僅獲取xml中的根節點的節點

[英]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中, 我不希望 ProductTransactions的childnodes請幫助我。

您可以使用Elements

按文檔順序返回此元素或文檔的子元素的集合。

例:

foreach (XElement node in loadedData.Elements())

我這樣解決了自己。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM