2010-12-15 53 views
0

我有此XML文檔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> 

現在我需要與包含在參數元素中的值來提取每個/會話/參數@目標節點(軸)值的( S)。

什麼是最好的方法來做到這一點?

感謝

+0

你試過'XmlTextReader'嗎? http://www.c-sharpcorner.com/uploadfile/mahesh/readwritexmltutmellli2111282005041517am/readwritexmltutmellli21.aspx或http://support.microsoft.com/kb/311566 – 2010-12-15 13:11:03

+0

「現在我需要提取每個/ session /參數@目標節點(軸)值與參數元素中包含的值「。 - 首先,它看起來像你的xpath是錯誤的,它不應該是「/ session/parameters/parameter @ target」嗎?一旦你有了這個價值,你想用它做什麼,因爲你的句子不清楚? – 2013-10-03 23:29:09

回答

0

您可以使用XML解析庫:它可以讓你知道的任何節點和XML文檔的變量的值。我不知道c#有什麼庫,但是對於C++來說,有TinyXml。看看,也許這是一個.net語言的端口。