Re: [問題] XML Parsing多筆資料的問題

看板C_Sharp作者 (不放過自己)時間14年前 (2009/08/28 17:01), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
好吧, 如果你reformat過了, 就提供一個最簡單的取值範例吧... XmlDocument xmlDoc = new XmlDocument(); .......(略, 載入Xml內容...) XmlNodeList itemNodeList = xmlDoc.SelectNodes( "/items/item" ); foreach( XmlNode itemNode in itemNodeList ) { string itemId = itemNode.SelectSingleNode( "./id/@pid" ).Value; string itemName = itemNode.SelectSingleNode( "./name" ).InnerText; string itemPrice = itemNode.SelectSingleNode( "./price" ).InnerText; // 或是用以下註解的方法,但不建議。因為必須要求Child Node按固定次序。 //string itemId = itemNode.ChildNodes[ 0 ].Attributes[ "pid" ].Value; //string itemName = itemNode.ChildNodes[ 1 ].InnerText; //string itemPrice = itemNode.ChildNodes[ 2 ].InnerText; ........(略) } 你可以寫一個Factory Method及寫一個Item Class, 然後把上面的Code改得更OO的感覺, 然後去做操作... 或是就直接操作了, 之後再去重構... 端看你的需求... 又若你只是想依特定pid, 然後直接從Xml內容中找出特定Item, 那麼你就是透過SelectSingleNode加上對應的XPath指示去找出Node吧~ 又若你只是單純想要產生新的結果輸出, 也不喜歡上述寫程式的方式... 那你可以寫個更簡短的程式去套XSL, 然後直接產生你要的結果輸出... -- 對於已經無法擁有的 唯一能做的是 不要忘記 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.251.180 ※ 編輯: petrushka 來自: 140.125.251.180 (08/28 17:09) ※ 編輯: petrushka 來自: 140.125.251.180 (08/28 17:13)

09/02 07:43, , 1F
感謝~
09/02 07:43, 1F
文章代碼(AID): #1AbvpI8A (C_Sharp)
文章代碼(AID): #1AbvpI8A (C_Sharp)