1

データノードのインスタンスごとに、次のXMLに新しい要素を挿入したいと思います

これが私が持っている最初のXMLです:

<dataCollection totalCount="12" pageCount="1">
    <data>
        <date>2011-11-10T00:00:00.000-05:00</date> 
        <dataType>PRCP</dataType> 
        <station>GHCND:USW00014739</station> 
        <value>267</value> 
        <address>
            <home>X</home> 
        </address>
    </data>
    <data>
        <date>2011-11-10T00:00:00.000-05:00</date> 
        <dataType>PRCP</dataType> 
        <station>GHCND:USW00014739</station> 
        <value>267</value> 
        <address>
            <home>X</home> 
       </address>
    </data>
</dataCollection> 

そしてこれは私が達成しようとしているXMLです

<dataCollection totalCount="12" pageCount="1">
    <data>
        <date>2011-11-10T00:00:00.000-05:00</date> 
        <dataType>TMIN</dataType> 
        <station>GHCND:USW00014739</station> 
        <value>267</value> 
        <newValue>60</newValue>  
        <address>
            <home>X</home> 
        </address>
    </data>
    <data>
        <date>2011-11-10T00:00:00.000-05:00</date> 
        <dataType>TMAX</dataType> 
        <station>GHCND:USW00014739</station> 
        <value>270</value>
        <newValue>62</newValue>  
        <address>
            <home>X</home> 
        </address>
    </data>
</dataCollection> 

XMLデータは、次のLinqを使用してDataGridのデータソースとして使用されます。

Dim elements = (From daDsc In xdoc.Descendants("data") _
            Select Data_Type = daDsc.Element("dataType").Value, _
            Raw_Value = daDsc.Element("value").Value,
            newValue = daDsc.Element("newValue"))

これをVB.netで記述しますが、C#での回答は問題ありません。ありがとう。

4

2 に答える 2

1

これを試して:

foreach (var xe in xml.Descendants("data"))
{
    xe.Element("value")
        .AddAfterSelf(new XElement("newValue", 42));
}
于 2012-11-07T02:21:08.357 に答える
0

処理する前にXMLに追加する場合はnewValue、次のようにすることができます。

For Each element As XElement In xml.Elements
  element.SetElementValue("newValue", "something")
Next

ここxmlで、は、XDocumentWebサービスからロードされます。

于 2012-11-07T02:12:54.757 に答える