我想使用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éé des datasets vides
- vides les datasets des données
Les datasets auquels sont rajoutés 1 informations : VERSION
Modification du 05/02/2013 par A.dupont
la variable "LaDate" retourne MYSTRING\(20)</Property>
</Record>
</Job>
</DSExport>
&#13;
答案 0 :(得分:0)
不幸的是,没有人给我一个我想要的确切答案,但我终于得到了解决方案;
我使用了XmlDocument
我使用SelectNodes选项来获取我的节点,但最重要的是有时使用.// MyNode获取相关节点,基于当前节点。如果我们不使用.//我们将获取文档中的所有节点而不是当前节点的相关节点。 我用这样的东西来取得成功 XmlNodeList PropertyNodes = itemNode.SelectNodes(&#34; .// Property&#34;);
非常感谢任何试图提供帮助的人。