2012-04-21 8 views
0

XMLファイルを編集する必要があり、これを行うスクリプトを作成したいと考えています。 XMLに関する私の経験はほとんど存在しないので、私はあなたの助けを求めています。XMLでコンテンツを置換する

以下のXMLには、プラスのの値がの要素と、負の値を持つ要素の2つの転送命令が含まれています。 sのあるAddressId、およびその逆

  • 置き換える「配信タスクであるAddressId s」を

    • pickup_taskを置き換える:私は何をしたいの負が含まれているすべてのトランスポート・オーダーのため、ありますピックアップタスクのタスクウィンドウ(from_instantとtill_instant)を配信タスクの値で置き換えます。

    VBスクリプトやバッチなどを200個以上のtransport_ordersを持つファイルに置き換えることは可能ですか?

    おかげでここ

    <?xml version="1.0" encoding="iso-8859-2"?> 
    <misu version="2010"> 
        <transport_orders> 
         <transport_order> 
          <id>NOCCO/12-006798_1</id> 
          <order_number>NOCCO/12-006798_1</order_number> 
          <order_date>2012-03-30</order_date> 
          <contactId>C04396</contactId> 
          <productId>0103-01101025</productId> 
          <sum>3135.51</sum> 
          <currency_code></currency_code> 
          <reference>NOCCO/12-006798</reference> 
          <amounts> 
           <amount> 
            <unit_code>kg</unit_code> 
            <value>324.00</value> 
           </amount> 
          </amounts> 
          <pickup_task> 
           <addressid>BUCU</addressid> 
           <task_window> 
            <from_instant>2012-04-20T18:26:43</from_instant> 
            <till_instant>2012-04-20T18:26:43</till_instant> 
           </task_window> 
          </pickup_task> 
          <delivery_task> 
           <addressid>C04396_1</addressid> 
           <task_window> 
            <from_instant>2012-04-23T00:00:00</from_instant> 
            <till_instant>2012-04-24T00:00:00</till_instant> 
           </task_window> 
          </delivery_task> 
         </transport_order> 
         <transport_order> 
          <id>NOCCO/12-007016_2</id> 
          <order_number>NOCCO/12-007016_2</order_number> 
          <order_date>2012-04-02</order_date> 
          <contactId>C01137</contactId> 
          <productId>0604-08L15000</productId> 
          <sum>495.00</sum> 
          <currency_code></currency_code> 
          <reference>NOCCO/12-007016</reference> 
          <amounts> 
           <amount> 
            <unit_code>m2</unit_code> 
            <value>-5.00</value> 
           </amount> 
          </amounts> 
          <pickup_task> 
           <addressid>SFGH</addressid> 
           <task_window> 
            <from_instant>2012-04-20T18:26:43</from_instant> 
            <till_instant>2012-04-20T18:26:43</till_instant> 
           </task_window> 
          </pickup_task> 
          <delivery_task> 
           <addressid>C01137_1</addressid> 
           <task_window> 
            <from_instant>2012-04-23T00:00:00</from_instant> 
            <till_instant>2012-04-24T00:00:00</till_instant> 
           </task_window> 
          </delivery_task> 
         </transport_order> 
        </transport_orders> 
    </misu> 
    
  • +0

    あなたはどのプラットフォーム/言語を開いていますか? – McGarnagle

    +0

    最も関連性の高いものは視覚的な基本的なものです。私はいつもここで助けを借りてコードを書くだけです。 –

    +0

    それはVB.NETまたはVB Scriptでしょうか? (Powershell?)これは.NETではかなり簡単ですが、あなたが望むものではないと思います... – McGarnagle

    答えて

    0

    yaが、これは私が(私はVBに慣れていない)あなた次第パート2を残しておきますパート1を達成する必要があります...行きます。ご覧のとおり、私はXMLファイルの名前を "data.xml"としました。フィードバック

    Sub Main() 
        Dim xdoc As XDocument 
        Dim filename As String 
        filename = "../../data/data.xml" 
        xdoc = XDocument.Load(filename) 
        Dim xe As XElement 
        xe = xdoc.Root.Element("transport_orders") 
        For Each element In xe.Elements("transport_order") 
         Dim val As Integer 
         val = element.Element("amounts").Element("amount").Element("value").Value 
         If (val < 0) Then 
          Console.WriteLine(val) 
          Dim puelement As XElement 
          Dim delelement As XElement 
          Dim putask As String 
          puelement = element.Element("pickup_task").Element("addressid") 
          delelement = element.Element("delivery_task").Element("addressid") 
          putask = delelement.Value 
          delelement.Value = puelement.Value 
          puelement.Value = putask 
         End If 
        Next 
        xdoc.Save(filename) 
        Console.ReadLine() 
    End Sub 
    
    +0

    ありがとう、私は見て、今夜のフィードで戻ってきます。 –

    0

    、私は出回っ私の知識が限られていると述べたようなものは、gorceously働いていると私はいつものコードが何をするのか理解しようとするので、ここで私のニーズに合わせて再現しようとすると、私がやったことです私の2番目の質問は、私はかなりラメ知っているが、それは仕事をしなければなら、

    puelement2 = element.Element("pickup_task").Element("task_window").Element("from_instant") 
    delelement2 = element.Element("delivery_task").Element("task_window").Element("from_instant") 
    putask2 = delelement2.Value 
    delelement2.Value = puelement2.Value 
    puelement2.Value = putask2 
    
    puelement3 = element.Element("pickup_task").Element("task_window").Element("till_instant") 
    delelement3 = element.Element("delivery_task").Element("task_window").Element("till_instant") 
    putask3 = delelement3.Value 
    delelement3.Value = puelement3.Value 
    puelement3.Value = putask3 
    

    感謝をご確認ください。 Realyが役に立った

    +1

    これは本当の答えではありません。明確にするか、追加の詳細について質問したい場合は、質問を更新する必要があります。または、新しい質問をする。 – mzjn

    関連する問題