2010-12-15 42 views
0

Je possède ce document XMLComment remplacer les valeurs de l'élément XML

<?xml version="1.0" encoding="utf-8" ?> 
<session name ="tdsls4401m000"> 
    <parameters> 
    <!-- any of the fields can be specified as parameter : unspecified field values will be take from there default --> 
    <parameter name="ornoFrom" target="/session/fields/field[@name='orno.f']" type ="string" >1</parameter> 
    <parameter name="ornoTo" target="/session/fields/field[@name='orno.t']" type ="string" >141527</parameter> 
    <parameter name="device" target="/session/verbs/setreport/parameter[@name='device']" type="string">123</parameter> 
    <!--<parameter name="compFrom" target="/session/fields/[email protected][comp.f]" type ="string" >000</parameter> 
    <parameter name="compTo" target="/session/fields/[email protected][comp.t]" type ="string" >999</parameter>--> 

    </parameters> 
    <fields> 
    <field name="selection" verb="setenum" debug="true">1</field> 
    <field name="orno.f" verb="put" debug="true"></field> 
    <field name="orno.t" verb="put" debug="true"></field> 
    <field name="comp.f" verb="put"></field> 
    <field name="comp.t" verb="put"></field> 
    <field name="prnt.discount" verb="put" value="2"></field> 
    <field name="prnt.sellpr" verb="put" value="2"></field> 
    <field name="printed" verb="put" value="1"></field> 
    <field name="quan.to.print" verb="put" value="1"></field> 
    <field name="prnt.options" verb="put" value="2"></field> 
    <field name="num.copies" verb="put" value="1"></field> 
    </fields> 
    <verbs> 
    <setreport> 
     <parameter name="reportname">"rtdsls440101000"</parameter> 
     <parameter name="device">"105"</parameter> 
    </setreport> 
    <continue/> 
    </verbs> 
</session> 

Maintenant, je dois extraire chacun de la valeur à la valeur/session de paramètre/nœud cible @ (axe) contenu dans l'élément de paramètre (s).

Quelle serait la meilleure approche pour le faire?

Merci

+0

Avez-vous essayé 'XmlTextReader'? http://www.c-sharpcorner.com/uploadfile/mahesh/readwritexmltutmellli2111282005041517am/readwritexmltutmellli21.aspx ou http://support.microsoft.com/kb/311566 –

+0

"Maintenant, j'ai besoin d'extraire chacun des paramètres/session/@ la valeur du noeud cible (axe) avec la valeur contenue dans le ou les éléments du paramètre. " - Premièrement, il semble que votre xpath est faux, ne devrait-il pas être "/ session/parameters/parameter @ target"? Une fois que vous avez cette valeur, qu'est-ce que vous voulez en faire, car votre phrase n'est pas claire? –

Répondre

0

Vous pouvez utiliser une bibliothèque d'analyse XML: il vous permettra de connaître la valeur d'un noeud et les variables de votre document XML. Je ne sais pas quelles sont les bibliothèques pour C#, mais pour C++ il y a TinyXml. Jetez un coup d'oeil, c'est peut-être un port pour les langues .net.