Linq to XML
解析XML节点的时候,如何一步定位到某个节点呢,可以采用以下办法
以下就会遍历xml下所有的test节点,无论该节点是在哪一个层级。
XDocument xdoc = XDocument.Load("test.xml"); var testItem= (from test in xdoc.Descendants("test") select test);
如果同一个xml中同一层级存在相同得节点名称,可以通过命名空间区分

<?xml version="1.0" encoding="UTF-8"?> <edgarSubmission xmlns="http://www.sec.gov/edgar/nmfp" xmlns:com="http://www.sec.gov/edgar/common" xmlns:invest="http://www.sec.gov/edgar/invest" xmlns:part1="http://www.sec.gov/edgar/nmfpfund" xmlns:part2="http://www.sec.gov/edgar/nmfpsecurities" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sec.gov/edgar/nmfp eis_NMFP_Submission.xsd"> <submissionType>N-MFP/A</submissionType> <liveTestFlag>LIVE</liveTestFlag> <isThisElectronicCopyOfPaperFormat>N</isThisElectronicCopyOfPaperFormat> <DocumentPeriodEndDate>2014-10-31</DocumentPeriodEndDate> <EntityCentralIndexKey>0000822977</EntityCentralIndexKey> <seriesId>S000009259</seriesId> <totalClassesInSeries>9</totalClassesInSeries> <isThisFinalFiling>N</isThisFinalFiling> <isFundLiquidating>N</isFundLiquidating> <isFundMergingWithOrBeingAcquiredByAnotherFund>N</isFundMergingWithOrBeingAcquiredByAnotherFund> <hasFundAcquiredOrMergedWithAnotherFundSinceLastFiling>N</hasFundAcquiredOrMergedWithAnotherFundSinceLastFiling> <seriesLevelInformation> <part1:ContainedFileInformationFileNumber>033-17619</part1:ContainedFileInformationFileNumber> <part1:investmentAdviserList> <part1:adviser> <part1:adviserName>Goldman Sachs Asset Management, L.P.</part1:adviserName> <part1:adviserFileNumber>801-37591</part1:adviserFileNumber> </part1:adviser> </part1:investmentAdviserList> <part1:independentPublicAccountant> <part1:name>PricewaterhouseCoopers LLP</part1:name> <part1:city>Boston</part1:city> <part1:state>MA</part1:state> </part1:independentPublicAccountant> <part1:administratorList> <part1:administrator>Goldman Sachs Asset Management, L.P.</part1:administrator> <part1:administrator>The Bank of New York Mellon</part1:administrator> </part1:administratorList> <part1:transferAgentList> <part1:transferAgent> <part1:name>Goldman, Sachs & Co.</part1:name> <part1:EntityCentralIndexKey>0000734700</part1:EntityCentralIndexKey> <part1:fileNumber>84-01100</part1:fileNumber> </part1:transferAgent> </part1:transferAgentList> <part1:isThisFeederFund>N</part1:isThisFeederFund> <part1:isThisMasterFund>N</part1:isThisMasterFund> <part1:isThisSeriesPrimarilyUsedToFundInsuranceCompanySeperateAccounts>N</part1:isThisSeriesPrimarilyUsedToFundInsuranceCompanySeperateAccounts> <part1:InvestmentTypeDomain>Prime</part1:InvestmentTypeDomain> <part1:dollarWeightedAveragePortfolioMaturity>46</part1:dollarWeightedAveragePortfolioMaturity> <part1:dollarWeightedAverageLifeMaturity>84</part1:dollarWeightedAverageLifeMaturity> <part1:AvailableForSaleSecuritiesAmortizedCost>30376398964.38</part1:AvailableForSaleSecuritiesAmortizedCost> <part1:OtherAssets>347512625.62</part1:OtherAssets> <part1:Liabilities>106243634.11</part1:Liabilities> <part1:AssetsNet>30617667955.89</part1:AssetsNet> <part1:MoneyMarketSevenDayYield>0.0024</part1:MoneyMarketSevenDayYield> <part1:seriesShadowPrice> <part1:netValuePerShareIncludingCapitalSupportAgreement>1.0000</part1:netValuePerShareIncludingCapitalSupportAgreement> <part1:dateCalculatedFornetValuePerShareIncludingCapitalSupportAgreement>2014-10-31</part1:dateCalculatedFornetValuePerShareIncludingCapitalSupportAgreement> <part1:netValuePerShareExcludingCapitalSupportAgreement>1.0000</part1:netValuePerShareExcludingCapitalSupportAgreement> <part1:dateCalculatedFornetValuePerShareExcludingCapitalSupportAgreement>2014-10-31</part1:dateCalculatedFornetValuePerShareExcludingCapitalSupportAgreement> </part1:seriesShadowPrice> </seriesLevelInformation> <classLevelInformationList> <part1:classLevelInformation> <part1:classId>C000025295</part1:classId> <part1:minInitialInvestment>10000000.00</part1:minInitialInvestment> <part1:netAssetsOfClass>29550496807.58</part1:netAssetsOfClass> <part1:netAssetValuePerShare>1.00</part1:netAssetValuePerShare> <part1:netShareholderFlowActivityForMonthEnded>-1068554490.39</part1:netShareholderFlowActivityForMonthEnded> <part1:grossSubscriptionsForMonthEnded>33990760553.60</part1:grossSubscriptionsForMonthEnded> <part1:grossRedemptionsForMonthEnded>35059315043.99</part1:grossRedemptionsForMonthEnded> <part1:sevenDayNetYield>0.0006</part1:sevenDayNetYield> <part1:classShadowPrice> <part1:netAssetValuePerShareIncludingCapitalSupportAgreement> <part1:value>1.0000</part1:value> <part1:dateAsOfWhichValueWasCalculated>2014-10-31</part1:dateAsOfWhichValueWasCalculated> </part1:netAssetValuePerShareIncludingCapitalSupportAgreement> <part1:netAssetValuePerShareExcludingCapitalSupportAgreement> <part1:value>1.0000</part1:value> <part1:dateAsOfWhichValueWasCalculated>2014-10-31</part1:dateAsOfWhichValueWasCalculated> </part1:netAssetValuePerShareExcludingCapitalSupportAgreement> </part1:classShadowPrice> </part1:classLevelInformation> <part1:classLevelInformation> <part1:classId>C000025296</part1:classId> <part1:minInitialInvestment>10000000.00</part1:minInitialInvestment> <part1:netAssetsOfClass>325557309.89</part1:netAssetsOfClass> <part1:netAssetValuePerShare>1.00</part1:netAssetValuePerShare> <part1:netShareholderFlowActivityForMonthEnded>44924724.55</part1:netShareholderFlowActivityForMonthEnded> <part1:grossSubscriptionsForMonthEnded>128788631.42</part1:grossSubscriptionsForMonthEnded> <part1:grossRedemptionsForMonthEnded>83863906.87</part1:grossRedemptionsForMonthEnded> <part1:sevenDayNetYield>0.0001</part1:sevenDayNetYield> <part1:classShadowPrice> <part1:netAssetValuePerShareIncludingCapitalSupportAgreement> <part1:value>1.0000</part1:value> <part1:dateAsOfWhichValueWasCalculated>2014-10-31</part1:dateAsOfWhichValueWasCalculated> </part1:netAssetValuePerShareIncludingCapitalSupportAgreement> <part1:netAssetValuePerShareExcludingCapitalSupportAgreement> <part1:value>1.0000</part1:value> <part1:dateAsOfWhichValueWasCalculated>2014-10-31</part1:dateAsOfWhichValueWasCalculated> </part1:netAssetValuePerShareExcludingCapitalSupportAgreement> </part1:classShadowPrice> </part1:classLevelInformation> <part1:classLevelInformation> <part1:classId>C000025297</part1:classId> <part1:minInitialInvestment>10000000.00</part1:minInitialInvestment> <part1:netAssetsOfClass>20693763.10</part1:netAssetsOfClass> <part1:netAssetValuePerShare>1.00</part1:netAssetValuePerShare> <part1:netShareholderFlowActivityForMonthEnded>-2394577.57</part1:netShareholderFlowActivityForMonthEnded> <part1:grossSubscriptionsForMonthEnded>7866466.05</part1:grossSubscriptionsForMonthEnded> <part1:grossRedemptionsForMonthEnded>10261043.62</part1:grossRedemptionsForMonthEnded> <part1:sevenDayNetYield>0.0001</part1:sevenDayNetYield> <part1:classShadowPrice> <part1:netAssetValuePerShareIncludingCapitalSupportAgreement> <part1:value>1.0000</part1:value> <part1:dateAsOfWhichValueWasCalculated>2014-10-31</part1:dateAsOfWhichValueWasCalculated> </part1:netAssetValuePerShareIncludingCapitalSupportAgreement> <part1:netAssetValuePerShareExcludingCapitalSupportAgreement> <part1:value>1.0000</part1:value> <part1:dateAsOfWhichValueWasCalculated>2014-10-31</part1:dateAsOfWhichValueWasCalculated> </part1:netAssetValuePerShareExcludingCapitalSupportAgreement> </part1:classShadowPrice> </part1:classLevelInformation>
其中的edgarSubmission属性定义了几个命名空间,别分别起别名Part,Part2等,分别在有的子节点中加上了该命名空间,如 <part1:classLevelInformation>,这样可以对具有另一个相同的<classLevelInformation>节点以示区分.
如果想遍历特定命名空间的节点可以使用以下方法:
XNamespace a= "http://test/a/b"; XNamespace b= "http://test/a/c"; XDocument xdoc = XDocument.Load(@"D:\test.xml"); var item=from c in xdoc.Descendants(nmfpNameSpace + "c") select c;
作者:tuohaibei
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利.
如果您觉得文章对您有帮助,可以点击文章右下角"推荐".您的鼓励是作者坚持原创和持续写作的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?