作者petrushka (不放过自己)
看板C_Sharp
标题Re: [问题] XML Parsing多笔资料的问题
时间Fri Aug 28 17:01:03 2009
好吧, 如果你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)
1F:推 quarry:感谢~ 09/02 07:43