2010-12-15 90 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语言的端口。