Xml保存更改(帮助!) [英] Xml save changes (Help!)

查看:61
本文介绍了Xml保存更改(帮助!)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是xml im试图保存更改的示例,其他具有相同结构但条目不同的文件.

<?xml version ="1.0" encoding ="UTF-8"?

< CHandlingDataMgr>
  < HandlingData>
   <项目类型="CHandlingData">
      < handlingName> AIRTUG</handlingName>
      < fMass value ="1400.000000"; />
      < fInitialDragCoeff value ="30.000000"; />
      < fPercentSubmerged value ="85.000000"; />
      < vecCentreOfMassOffset x ="0.000000" y ="0.000000". z ="0.000000"; />
      < vecInertiaMultiplier x ="1.000000"; y ="1.000000". z ="1.000000". />
      < fDriveBiasFront值="1.000000"; />
      < nInitialDriveGears值="1" />
      < fInitialDriveForce value ="0.060000&"; />
      < fDriveInertia value ="1.000000"; />
      < fClutchChangeRateScaleUpShift value ="1.300000"; />
      < fClutchChangeRateScaleDownShift value ="1.300000"; />
      < fInitialDriveMaxFlatVel value ="40.000000"; />
      < fBrakeForce value ="0.300000"; />
      < fBrakeBiasFront value ="0.450000&"; />
      < fHandBrakeForce value ="0.350000&"; />
      < fSteeringLock value ="30.000000"; />
      < fTractionCurveMax value ="1.150000&"; />
      < fTractionCurveMin value ="0.950000&"; />
      < fTractionCurveLateral value ="11.000000"; />
      < fTractionSpringDeltaMax value ="0.100000"; />
      < fLowSpeedTractionLossMult value ="0.000000" />
      < fCamberStiffnesss value ="0.000000" />
      < fTractionBiasFront value ="0.450000&"; />
      < fTractionLossMult value ="1.000000"; />
      < fSuspensionForce value ="4.000000"; />
      < fSuspensionCompDamp value ="1.500000"; />
      < fSuspensionReboundDamp value ="1.500000"; />
      < fSuspensionUpperLimit value ="0.100000"; />
      < fSuspensionLowerLimit value =-0.100000"; />
      < fSuspensionRaise value ="0.000000" />
      < fSuspensionBiasFront值="0.500000"; />
      < fAntiRollBarForce value ="0.000000" />
      < fAntiRollBarBiasFront值="0.000000" />
      < fRollCentreHeightFront value ="0.200000"; />
      < fRollCentreHeightRear value ="0.200000"; />
      < fCollisionDamageMult value ="1.000000"; />
      < fWeaponDamageMult value ="1.000000"; />
      < fDeformationDamageMult value ="0.800000"; />
      < fEngineDamageMult value ="1.500000"; />
      < fPetrolTankVolume value ="0.000000" />
      < fOilVolume value ="0.000000" />
      < fSeatOffsetDistX value ="0.000000" />
      < fSeatOffsetDistY value ="0.000000" />
      < fSeatOffsetDistZ value ="0.000000" />
      < nMonetaryValue value ="15000&"; />
      < strModelFlags> 440000</strModelFlags>
      < strHandlingFlags> 1000</strHandlingFlags>
      < strDamageFlags> 20< strDamageFlags>
      < AIHandling>卡车</AIHandling>
      < SubHandlingData>
        <项目类型="NULL" />
        <项目类型="NULL" />
        <项目类型="NULL" />
      </SubHandlingData>
    </Item>
    <项目类型="CHandlingData">
      < handlingName> ADDER</handlingName>
      < fMass value ="1800.000000"; />
      < fInitialDragCoeff value ="7.800000"; />
      < fPercentSubmerged value ="85.000000"; />
      < vecCentreOfMassOffset x ="0.000000" y ="0.000000". z ="0.000000"; />
      < vecInertiaMultiplier x ="1.000000"; y ="1.300000". z ="1.500000"; />
      < fDriveBiasFront值="0.200000"; />
      < nInitialDriveGears value ="6". />
      < fInitialDriveForce value ="0.320000&"; />
      < fDriveInertia value ="1.000000"; />
      < fClutchChangeRateScaleUpShift value ="3.000000"; />
      < fClutchChangeRateScaleDownShift value ="3.000000"; />
      < fInitialDriveMaxFlatVel value ="160.000000"; />
      < fBrakeForce value ="1.000000"; />
      < fBrakeBiasFront value ="0.450000&"; />
      < fHandBrakeForce value ="0.700000"; />
      < fSteeringLock value ="42.000000"; />
      < fTractionCurveMax value ="2.500000"; />
      < fTractionCurveMin value ="2.380000&"; />
      < fTractionCurveLateral value ="22.500000"; />
      < fTractionSpringDeltaMax value ="0.150000"; />
      < fLowSpeedTractionLossMult value ="1.500000"; />
      < fCamberStiffnesss value ="0.000000" />
      < fTractionBiasFront值="0.485000". />
      < fTractionLossMult value ="1.000000"; />
      < fSuspensionForce value ="2.400000"; />
      < fSuspensionCompDamp value ="1.400000"; />
      < fSuspensionReboundDamp value ="2.100000"; />
      < fSuspensionUpperLimit value ="0.120000&"; />
      < fSuspensionLowerLimit value =-0.100000"; />
      < fSuspensionRaise value ="0.000000" />
      < fSuspensionBiasFront值="0.500000"; />
      < fAntiRollBarForce value ="0.900000"; />
      < fAntiRollBarBiasFront值="0.600000"; />
      < fRollCentreHeightFront value ="0.410000"; />
      < fRollCentreHeightRear value ="0.410000"; />
      < fCollisionDamageMult value ="0.700000"; />
      < fWeaponDamageMult value ="1.000000"; />
      < fDeformationDamageMult value ="0.700000"; />
      < fEngineDamageMult value ="1.500000"; />
      < fPetrolTankVolume value ="65.000000"; />
      < fOilVolume value ="5.000000"; />
      < fSeatOffsetDistX value ="0.000000" />
      < fSeatOffsetDistY value ="0.000000" />
      < fSeatOffsetDistZ value ="0.000000" />
      < nMonetaryValue value ="80000&"; />
      < strModelFlags> 440010</strModelFlags>
      < strHandlingFlags> 0</strHandlingFlags>
      < strDamageFlags> 0</strDamageFlags>
      < AIHandling>平均</AIHandling>
      < SubHandlingData>
        <项目类型="CCarHandlingData">
          < fBackEndPopUpCarImpulseMult value ="0.075000"; />
          < fBackEndPopUpBuildingImpulseMult value ="0.030000&"; />
          < fBackEndPopUpMaxDeltaSpeed value ="0.250000"; />
        </Item>
        <项目类型="NULL" />
        <项目类型="NULL" />
      </SubHandlingData>
    </Item>
    <项目类型="CHandlingData">
      < handlingName> AIRBUS</handlingName>
      < fMass value ="9000.000000"; />
      < fInitialDragCoeff value ="10.000000"; />
      < fPercentSubmerged value ="85.000000"; />
      < vecCentreOfMassOffset x ="0.000000" y ="0.000000". z ="0.000000"; />
      < vecInertiaMultiplier x ="1.600000"; y ="2.000000". z ="2.400000"; />
      < fDriveBiasFront值="0.500000"; />
      < nInitialDriveGears值="4" />
      < fInitialDriveForce value ="0.120000&"; />
      < fDriveInertia value ="0.500000"; />
      < fClutchChangeRateScaleUpShift value ="1.000000"; />
      < fClutchChangeRateScaleDownShift value ="1.000000"; />
      < fInitialDriveMaxFlatVel value ="100.000000"; />
      < fBrakeForce value ="0.250000". />
      < fBrakeBiasFront value ="0.650000&"; />
      < fHandBrakeForce value ="0.450000&"; />
      < fSteeringLock value ="35.000000"; />
      < fTractionCurveMax value ="1.450000&"; />
      < fTractionCurveMin value ="1.350000&"; />
      < fTractionCurveLateral value ="15.000000"; />
      < fTractionSpringDeltaMax value ="0.130000&"; />
      < fLowSpeedTractionLossMult value ="0.000000" />
      < fCamberStiffnesss value ="0.000000" />
      < fTractionBiasFront值="0.475000". />
      < fTractionLossMult value ="0.900000"; />
      < fSuspensionForce value ="2.000000"; />
      < fSuspensionCompDamp value ="0.900000"; />
      < fSuspensionReboundDamp value ="1.800000"; />
      < fSuspensionUpperLimit value ="0.100000"; />
      < fSuspensionLowerLimit value =-0.180000&"; />
      < fSuspensionRaise value ="0.000000" />
      < fSuspensionBiasFront value ="0.450000&"; />
      < fAntiRollBarForce value ="0.000000" />
      < fAntiRollBarBiasFront值="0.000000" />
      < fRollCentreHeightFront value ="0.400000"; />
      < fRollCentreHeightRear value ="0.400000"; />
      < fCollisionDamageMult value ="1.000000"; />
      < fWeaponDamageMult value ="1.000000"; />
      < fDeformationDamageMult value ="0.800000"; />
      < fEngineDamageMult value ="1.500000"; />
      < fPetrolTankVolume value ="120.000000"; />
      < fOilVolume value ="8.000000"; />
      < fSeatOffsetDistX value ="0.000000" />
      < fSeatOffsetDistY value ="0.000000" />
      < fSeatOffsetDistZ value ="0.000000" />
      < nMonetaryValue value ="25000&"; />
      < strModelFlags> 20840018</strModelFlags>
      < strHandlingFlags> 0</strHandlingFlags>
      < strDamageFlags> 20< strDamageFlags>
      < AIHandling>卡车</AIHandling>
      < SubHandlingData>
        <项目类型="NULL" />
        <项目类型="NULL" />
        <项目类型="NULL" />
      </SubHandlingData>
    </Item>
    <项目类型="CHandlingData">
      < handlingName> AMBULAN</handlingName>
      < fMass value ="2500.000000"; />
      < fInitialDragCoeff value ="6.000000"; />
      < fPercentSubmerged value ="80.000000"; />
      < vecCentreOfMassOffset x ="0.000000" y ="0.000000". z ="0.000000"; />
      < vecInertiaMultiplier x ="1.000000"; y ="1.000000". z ="1.300000"; />
      < fDriveBiasFront值="0.500000"; />
      < nInitialDriveGears值="5" />
      < fInitialDriveForce value ="0.180000&"; />
      < fDriveInertia value ="1.000000"; />
      < fClutchChangeRateScaleUpShift value ="1.300000"; />
      < fClutchChangeRateScaleDownShift value ="1.300000"; />
      < fInitialDriveMaxFlatVel value ="140.000000"; />
      < fBrakeForce value ="0.600000"; />
      < fBrakeBiasFront value ="0.650000&"; />
      < fHandBrakeForce value ="0.400000"; />
      < fSteeringLock value ="35.000000"; />
      < fTractionCurveMax value ="1.950000&"; />
      < fTractionCurveMin值="1.700000"; />
      < fTractionCurveLateral value ="20.000000"; />
      < fTractionSpringDeltaMax value ="0.150000"; />
      < fLowSpeedTractionLossMult value ="0.500000"; />
      < fCamberStiffnesss value ="0.000000" />
      < fTractionBiasFront值="0.485000". />
      < fTractionLossMult value ="1.000000"; />
      < fSuspensionForce value ="1.400000"; />
      < fSuspensionCompDamp value ="0.900000"; />
      < fSuspensionReboundDamp value ="1.300000"; />
      < fSuspensionUpperLimit value ="0.200000"; />
      < fSuspensionLowerLimit value =-0.250000"; />
      < fSuspensionRaise value ="0.000000" />
      < fSuspensionBiasFront值="0.500000"; />
      < fAntiRollBarForce value ="0.650000&"; />
      < fAntiRollBarBiasFront值="0.510000"; />
      < fRollCentreHeightFront value ="0.300000"; />
      < fRollCentreHeightRear value ="0.300000"; />
      < fCollisionDamageMult value ="1.000000"; />
      < fWeaponDamageMult value ="1.000000"; />
      < fDeformationDamageMult value ="0.800000"; />
      < fEngineDamageMult value ="1.500000"; />
      < fPetrolTankVolume value ="70.000000"; />
      < fOilVolume value ="8.000000"; />
      < fSeatOffsetDistX value ="0.000000" />
      < fSeatOffsetDistY value ="0.000000" />
      < fSeatOffsetDistZ value ="0.000000" />
      < nMonetaryValue value ="40000&"; />
      < strModelFlags> 440018</strModelFlags>
      < strHandlingFlags> 0</strHandlingFlags>
      < strDamageFlags> 0</strDamageFlags>
      < AIHandling>平均</AIHandling>
      < SubHandlingData>
        <项目类型="NULL" />
        <项目类型="NULL" />
        <项目类型="NULL" />
      </SubHandlingData>
    </Item>
  </HandlingData>
</CHandlingDataMgr> 

这是我用来保存更改的代码.

私有子SaveFile(ByVal FileLocation作为字符串,ByVal SelectedVehicle作为Vehicle)
        Dim Handling_Xml作为新的XmlDocument()
        Handling_Xml.Load(FileLocation)
        XmlNode = Dim VNode = Handling_Xml.SelectSingleNode(String.Format("//CHandlingDataMgr/HandlingData/Item/handlingName",SelectedVehicle.VID))
        如果VNode一无所有
            MsgBox("XmlNode等于无!")
        别的
            VNode.InnerText = tbhandlingName.Text
            Handling_Xml.Save(FileLocation)
            重新显示(FileLocation)
        万一
    结束


我计划遍历item节点内的所有节点,并使用新的字符串更新它们,但我似乎只能对第一个item节点和仅processingName节点执行此操作.我还需要更改属性.同样"SelectedVehicle.VID"也称为"SelectedVehicle.VID". 是包含项目节点号的整数.谁能帮我吗?我已经在互联网上搜索了几天,但找不到任何对我有帮助的东西.我已经注意到了

 SelectSingleNode 

选择出现的第一个匹配项,但我想选择第二个或第三个匹配项作为示例,并在不影响其他匹配项的情况下进行更改.

 SelectedVehicle.VID 

包含它已经发生的数字.

解决方案

私有子SaveFile(ByVal FileLocation作为字符串,ByVal SelectedVehicle作为Vehicle) SetNode(FileLocation,SelectedVehicle,"//CHandlingDataMgr/HandlingData/Item/handlingName",tbhandlingName.Text,False,无) SetNode(FileLocation,SelectedVehicle,"//CHandlingDataMgr/HandlingData/Item/fMass",tbfMass.Text,True,0) 重新显示(FileLocation) 结束子 私有子SetNode(ByVal FileLocation作为字符串,ByVal SelectedVehicle作为车辆,ByVal Vstring作为字符串,ByVal NewInnerText作为字符串,ByVal AttSet作为布尔值,ByVal Att作为整数) Dim Handling_Xml作为新的XmlDocument() Handling_Xml.Load(FileLocation) 暗VNode为XmlNodeList = Handling_Xml.SelectNodes(String.Format(Vstring)) 如果AttSet = False,则 VNode.Item(SelectedVehicle.VID).InnerText = NewInnerText ElseIf AttSet = True则 VNode.Item(SelectedVehicle.VID).Attributes(Att).InnerText = NewInnerText 万一 Handling_Xml.Save(FileLocation) 结束


This is an example of xml im trying to save changes to, there are other files with the same structure but different entries.

<?xml version="1.0" encoding="UTF-8"?>

<CHandlingDataMgr>
  <HandlingData>
   <Item type="CHandlingData">
      <handlingName>AIRTUG</handlingName>
      <fMass value="1400.000000" />
      <fInitialDragCoeff value="30.000000" />
      <fPercentSubmerged value="85.000000" />
      <vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.000000" />
      <vecInertiaMultiplier x="1.000000" y="1.000000" z="1.000000" />
      <fDriveBiasFront value="1.000000" />
      <nInitialDriveGears value="1" />
      <fInitialDriveForce value="0.060000" />
      <fDriveInertia value="1.000000" />
      <fClutchChangeRateScaleUpShift value="1.300000" />
      <fClutchChangeRateScaleDownShift value="1.300000" />
      <fInitialDriveMaxFlatVel value="40.000000" />
      <fBrakeForce value="0.300000" />
      <fBrakeBiasFront value="0.450000" />
      <fHandBrakeForce value="0.350000" />
      <fSteeringLock value="30.000000" />
      <fTractionCurveMax value="1.150000" />
      <fTractionCurveMin value="0.950000" />
      <fTractionCurveLateral value="11.000000" />
      <fTractionSpringDeltaMax value="0.100000" />
      <fLowSpeedTractionLossMult value="0.000000" />
      <fCamberStiffnesss value="0.000000" />
      <fTractionBiasFront value="0.450000" />
      <fTractionLossMult value="1.000000" />
      <fSuspensionForce value="4.000000" />
      <fSuspensionCompDamp value="1.500000" />
      <fSuspensionReboundDamp value="1.500000" />
      <fSuspensionUpperLimit value="0.100000" />
      <fSuspensionLowerLimit value="-0.100000" />
      <fSuspensionRaise value="0.000000" />
      <fSuspensionBiasFront value="0.500000" />
      <fAntiRollBarForce value="0.000000" />
      <fAntiRollBarBiasFront value="0.000000" />
      <fRollCentreHeightFront value="0.200000" />
      <fRollCentreHeightRear value="0.200000" />
      <fCollisionDamageMult value="1.000000" />
      <fWeaponDamageMult value="1.000000" />
      <fDeformationDamageMult value="0.800000" />
      <fEngineDamageMult value="1.500000" />
      <fPetrolTankVolume value="0.000000" />
      <fOilVolume value="0.000000" />
      <fSeatOffsetDistX value="0.000000" />
      <fSeatOffsetDistY value="0.000000" />
      <fSeatOffsetDistZ value="0.000000" />
      <nMonetaryValue value="15000" />
      <strModelFlags>440000</strModelFlags>
      <strHandlingFlags>1000</strHandlingFlags>
      <strDamageFlags>20</strDamageFlags>
      <AIHandling>TRUCK</AIHandling>
      <SubHandlingData>
        <Item type="NULL" />
        <Item type="NULL" />
        <Item type="NULL" />
      </SubHandlingData>
    </Item>
    <Item type="CHandlingData">
      <handlingName>ADDER</handlingName>
      <fMass value="1800.000000" />
      <fInitialDragCoeff value="7.800000" />
      <fPercentSubmerged value="85.000000" />
      <vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.000000" />
      <vecInertiaMultiplier x="1.000000" y="1.300000" z="1.500000" />
      <fDriveBiasFront value="0.200000" />
      <nInitialDriveGears value="6" />
      <fInitialDriveForce value="0.320000" />
      <fDriveInertia value="1.000000" />
      <fClutchChangeRateScaleUpShift value="3.000000" />
      <fClutchChangeRateScaleDownShift value="3.000000" />
      <fInitialDriveMaxFlatVel value="160.000000" />
      <fBrakeForce value="1.000000" />
      <fBrakeBiasFront value="0.450000" />
      <fHandBrakeForce value="0.700000" />
      <fSteeringLock value="42.000000" />
      <fTractionCurveMax value="2.500000" />
      <fTractionCurveMin value="2.380000" />
      <fTractionCurveLateral value="22.500000" />
      <fTractionSpringDeltaMax value="0.150000" />
      <fLowSpeedTractionLossMult value="1.500000" />
      <fCamberStiffnesss value="0.000000" />
      <fTractionBiasFront value="0.485000" />
      <fTractionLossMult value="1.000000" />
      <fSuspensionForce value="2.400000" />
      <fSuspensionCompDamp value="1.400000" />
      <fSuspensionReboundDamp value="2.100000" />
      <fSuspensionUpperLimit value="0.120000" />
      <fSuspensionLowerLimit value="-0.100000" />
      <fSuspensionRaise value="0.000000" />
      <fSuspensionBiasFront value="0.500000" />
      <fAntiRollBarForce value="0.900000" />
      <fAntiRollBarBiasFront value="0.600000" />
      <fRollCentreHeightFront value="0.410000" />
      <fRollCentreHeightRear value="0.410000" />
      <fCollisionDamageMult value="0.700000" />
      <fWeaponDamageMult value="1.000000" />
      <fDeformationDamageMult value="0.700000" />
      <fEngineDamageMult value="1.500000" />
      <fPetrolTankVolume value="65.000000" />
      <fOilVolume value="5.000000" />
      <fSeatOffsetDistX value="0.000000" />
      <fSeatOffsetDistY value="0.000000" />
      <fSeatOffsetDistZ value="0.000000" />
      <nMonetaryValue value="80000" />
      <strModelFlags>440010</strModelFlags>
      <strHandlingFlags>0</strHandlingFlags>
      <strDamageFlags>0</strDamageFlags>
      <AIHandling>AVERAGE</AIHandling>
      <SubHandlingData>
        <Item type="CCarHandlingData">
          <fBackEndPopUpCarImpulseMult value="0.075000" />
          <fBackEndPopUpBuildingImpulseMult value="0.030000" />
          <fBackEndPopUpMaxDeltaSpeed value="0.250000" />
        </Item>
        <Item type="NULL" />
        <Item type="NULL" />
      </SubHandlingData>
    </Item>
    <Item type="CHandlingData">
      <handlingName>AIRBUS</handlingName>
      <fMass value="9000.000000" />
      <fInitialDragCoeff value="10.000000" />
      <fPercentSubmerged value="85.000000" />
      <vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.000000" />
      <vecInertiaMultiplier x="1.600000" y="2.000000" z="2.400000" />
      <fDriveBiasFront value="0.500000" />
      <nInitialDriveGears value="4" />
      <fInitialDriveForce value="0.120000" />
      <fDriveInertia value="0.500000" />
      <fClutchChangeRateScaleUpShift value="1.000000" />
      <fClutchChangeRateScaleDownShift value="1.000000" />
      <fInitialDriveMaxFlatVel value="100.000000" />
      <fBrakeForce value="0.250000" />
      <fBrakeBiasFront value="0.650000" />
      <fHandBrakeForce value="0.450000" />
      <fSteeringLock value="35.000000" />
      <fTractionCurveMax value="1.450000" />
      <fTractionCurveMin value="1.350000" />
      <fTractionCurveLateral value="15.000000" />
      <fTractionSpringDeltaMax value="0.130000" />
      <fLowSpeedTractionLossMult value="0.000000" />
      <fCamberStiffnesss value="0.000000" />
      <fTractionBiasFront value="0.475000" />
      <fTractionLossMult value="0.900000" />
      <fSuspensionForce value="2.000000" />
      <fSuspensionCompDamp value="0.900000" />
      <fSuspensionReboundDamp value="1.800000" />
      <fSuspensionUpperLimit value="0.100000" />
      <fSuspensionLowerLimit value="-0.180000" />
      <fSuspensionRaise value="0.000000" />
      <fSuspensionBiasFront value="0.450000" />
      <fAntiRollBarForce value="0.000000" />
      <fAntiRollBarBiasFront value="0.000000" />
      <fRollCentreHeightFront value="0.400000" />
      <fRollCentreHeightRear value="0.400000" />
      <fCollisionDamageMult value="1.000000" />
      <fWeaponDamageMult value="1.000000" />
      <fDeformationDamageMult value="0.800000" />
      <fEngineDamageMult value="1.500000" />
      <fPetrolTankVolume value="120.000000" />
      <fOilVolume value="8.000000" />
      <fSeatOffsetDistX value="0.000000" />
      <fSeatOffsetDistY value="0.000000" />
      <fSeatOffsetDistZ value="0.000000" />
      <nMonetaryValue value="25000" />
      <strModelFlags>20840018</strModelFlags>
      <strHandlingFlags>0</strHandlingFlags>
      <strDamageFlags>20</strDamageFlags>
      <AIHandling>TRUCK</AIHandling>
      <SubHandlingData>
        <Item type="NULL" />
        <Item type="NULL" />
        <Item type="NULL" />
      </SubHandlingData>
    </Item>
    <Item type="CHandlingData">
      <handlingName>AMBULAN</handlingName>
      <fMass value="2500.000000" />
      <fInitialDragCoeff value="6.000000" />
      <fPercentSubmerged value="80.000000" />
      <vecCentreOfMassOffset x="0.000000" y="0.000000" z="0.000000" />
      <vecInertiaMultiplier x="1.000000" y="1.000000" z="1.300000" />
      <fDriveBiasFront value="0.500000" />
      <nInitialDriveGears value="5" />
      <fInitialDriveForce value="0.180000" />
      <fDriveInertia value="1.000000" />
      <fClutchChangeRateScaleUpShift value="1.300000" />
      <fClutchChangeRateScaleDownShift value="1.300000" />
      <fInitialDriveMaxFlatVel value="140.000000" />
      <fBrakeForce value="0.600000" />
      <fBrakeBiasFront value="0.650000" />
      <fHandBrakeForce value="0.400000" />
      <fSteeringLock value="35.000000" />
      <fTractionCurveMax value="1.950000" />
      <fTractionCurveMin value="1.700000" />
      <fTractionCurveLateral value="20.000000" />
      <fTractionSpringDeltaMax value="0.150000" />
      <fLowSpeedTractionLossMult value="0.500000" />
      <fCamberStiffnesss value="0.000000" />
      <fTractionBiasFront value="0.485000" />
      <fTractionLossMult value="1.000000" />
      <fSuspensionForce value="1.400000" />
      <fSuspensionCompDamp value="0.900000" />
      <fSuspensionReboundDamp value="1.300000" />
      <fSuspensionUpperLimit value="0.200000" />
      <fSuspensionLowerLimit value="-0.250000" />
      <fSuspensionRaise value="0.000000" />
      <fSuspensionBiasFront value="0.500000" />
      <fAntiRollBarForce value="0.650000" />
      <fAntiRollBarBiasFront value="0.510000" />
      <fRollCentreHeightFront value="0.300000" />
      <fRollCentreHeightRear value="0.300000" />
      <fCollisionDamageMult value="1.000000" />
      <fWeaponDamageMult value="1.000000" />
      <fDeformationDamageMult value="0.800000" />
      <fEngineDamageMult value="1.500000" />
      <fPetrolTankVolume value="70.000000" />
      <fOilVolume value="8.000000" />
      <fSeatOffsetDistX value="0.000000" />
      <fSeatOffsetDistY value="0.000000" />
      <fSeatOffsetDistZ value="0.000000" />
      <nMonetaryValue value="40000" />
      <strModelFlags>440018</strModelFlags>
      <strHandlingFlags>0</strHandlingFlags>
      <strDamageFlags>0</strDamageFlags>
      <AIHandling>AVERAGE</AIHandling>
      <SubHandlingData>
        <Item type="NULL" />
        <Item type="NULL" />
        <Item type="NULL" />
      </SubHandlingData>
    </Item>
  </HandlingData>
</CHandlingDataMgr>

And this is the code im using to save the changes.

    Private Sub SaveFile(ByVal FileLocation As String, ByVal SelectedVehicle As Vehicle)
        Dim Handling_Xml As New XmlDocument()
        Handling_Xml.Load(FileLocation)
        Dim VNode As XmlNode = Handling_Xml.SelectSingleNode(String.Format("//CHandlingDataMgr/HandlingData/Item/handlingName", SelectedVehicle.VID))
        If VNode Is Nothing Then
            MsgBox("XmlNode equal to none!")
        Else
            VNode.InnerText = tbhandlingName.Text
            Handling_Xml.Save(FileLocation)
            Redisplay(FileLocation)
        End If
    End Sub


I plan to loop through all of the nodes inside the item nodes and update them with new strings but i can only seem to do it for the first item node and only the handlingName node. I need to change the attributes as well. Also "SelectedVehicle.VID" is an integer containing the item node number. Can anyone help me please? Ive searched the internet for days and can not find anything to help in my case. Ive noticed that 

SelectSingleNode

selects the first match that occurs but i would like to choose the 2nd or 3rd one as an example and change it without affecting the others.

SelectedVehicle.VID

Contains the number it has occurred.

解决方案

Problem solved! After trying a few extra things before giving up this is my example code that worked.

    Private Sub SaveFile(ByVal FileLocation As String, ByVal SelectedVehicle As Vehicle)
        SetNode(FileLocation, SelectedVehicle, "//CHandlingDataMgr/HandlingData/Item/handlingName", tbhandlingName.Text, False, Nothing)
        SetNode(FileLocation, SelectedVehicle, "//CHandlingDataMgr/HandlingData/Item/fMass", tbfMass.Text, True, 0)
        Redisplay(FileLocation)
    End Sub
    Private Sub SetNode(ByVal FileLocation As String, ByVal SelectedVehicle As Vehicle, ByVal Vstring As String, ByVal NewInnerText As String, ByVal AttSet As Boolean, ByVal Att As Integer)
        Dim Handling_Xml As New XmlDocument()
        Handling_Xml.Load(FileLocation)
        Dim VNode As XmlNodeList = Handling_Xml.SelectNodes(String.Format(Vstring))
        If AttSet = False Then
            VNode.Item(SelectedVehicle.VID).InnerText = NewInnerText
        ElseIf AttSet = True Then
            VNode.Item(SelectedVehicle.VID).Attributes(Att).InnerText = NewInnerText
        End If
        Handling_Xml.Save(FileLocation)
     End Sub


这篇关于Xml保存更改(帮助!)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆