使用C#解析XML文件

时间:2017-10-13 09:08:30

标签: c# xml xml-parsing

我想使用c#解析XML文件。我是该领域的初学者,所以我需要你的帮助。 在我问我的问题之前,我在网上查了一下,发现有两种解析XML的方法,要么我们应该使用一个名为XmlDocument或XmlReader的东西,所以我想知道在我的情况下最好用什么。

这正是我想要做的:我有一个XML,我想遍历所有节点并在节点和子节点内搜索特定的字符串,如果我找到了MYSTRING,我会注意到节点的名称是的,如果没有,我会注意到False节点的名称。 我将向您展示XML的一部分,该部分太长而无法使其更清晰。 如果你看起来接近XML的末尾有MYSTRING。 我想要的是循环遍历XML中的所有作业,并检查作业是否有MYSTRING ......有些作业有,有些则没有。 我的问题是:有什么用? XML阅读器或文档? 以及如何检查节点内部(本例中的Job)及其中的节点是否有一个名为MyString的字符串。

提前感谢任何可以帮助我的人。



<?xml version="1.0" encoding="UTF-8"?>
<DSExport>
   <Header CharacterSet="CP1252" ExportingTool="IBM InfoSphere DataStage Export" ToolVersion="8" ServerName="PAR.SL.PRES" ToolInstanceID="dstage1" Date="2017-10-12" Time="15.02.49" ServerVersion="11.5"/>
   <Job Identifier="JxD" TimeModified="11.59.45">
      <Record Identifier="ROOT" Type="JobDF" Readonly="0">
         <Property Name="Name">Suivi</Property>
         <Property Name="Description">Initialisation des datasets</Property>
         <Property Name="NextID">29</Property>
		 <Property Name="ControlAfterSubr">0</Property>
         <Collection Name="Parameters" Type="Parameters">
            <SubRecord>
               <Property Name="Name">pathdataset</Property>
               <Property Name="Prompt">pathdataset</Property>
               <Property Name="Default">/home/intdwh/DSdataset</Property>
               <Property Name="ParamType">5</Property>
               <Property Name="ParamLength">0</Property>
               <Property Name="ParamScale">0</Property>
            </SubRecord>
			</Collection>
         <Property Name="Container">V0</Property>
		 
         <Property Name="FullDescription" PreFormatted="1">Ce job : 
- cr&#xE9;&#xE9; des datasets vides
- vides les datasets des donn&#xE9;es

Les datasets auquels sont rajout&#xE9;s 1 informations : VERSION


Modification du 05/02/2013 par A.dupont

la variable &quot;LaDate&quot; retourne MYSTRING\(20)</Property>
 </Record>
   </Job>
   </DSExport>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

不幸的是,没有人给我一个我想要的确切答案,但我终于得到了解决方案;

我使用了XmlDocument

我使用SelectNodes选项来获取我的节点,但最重要的是有时使用.// MyNode获取相关节点,基于当前节点。如果我们不使用.//我们将获取文档中的所有节点而不是当前节点的相关节点。 我用这样的东西来取得成功  XmlNodeList PropertyNodes = itemNode.SelectNodes(&#34; .// Property&#34;);

非常感谢任何试图提供帮助的人。