1

我已经从数据集创建了一个 xml 文件,但是<NewDataset>我需要将第一个节点更改为,<FormData>并且我还需要添加一些参数,例如 Platform="Android" 和 Version="488"。

有什么方法可以在它仍然是数据集时更改它,还是在我更改它之后我必须调用文件然后保存它?

我对数据文件的了解很少,我真的需要一些帮助。


当前的 xml 文件

<NewDataSet>
  <FieldData>
    <property_details_gps_location>-29.77861, 31.008617</property_details_gps_location>
    <property_details_address_address1>27 MANJEE</property_details_address_address1>
    <property_details_address_address2>KENVILLE</property_details_address_address2>
    <property_details_address_city>ETHEKWINI</property_details_address_city>
    <property_details_address_state>KWAZULU NATAL</property_details_address_state>
  </FieldData>
</NewDataSet>

我希望达到的目标:

<FormData Platform="Android" PlatformVersion="73" Version="488" DataVersion="1" Description="Investec - Res" FormId="d617a5e8-b49b-4640-9734-bc7a2bf05691" FileId="bce3a788-6725-4ce2-b965-1b55c6e7cc95" EncryptionVerification="" CreatedBy="Shaunm" EditedBy="Shaunm">
  <FieldData>
    <property_details_gps_location>-29.77861, 31.008617</property_details_gps_location>
    <property_details_address_address1>27 MANJEE</property_details_address_address1>
    <property_details_address_address2>KENVILLE</property_details_address_address2>
    <property_details_address_city>ETHEKWINI</property_details_address_city>
    <property_details_address_state>KWAZULU NATAL</property_details_address_state>
  </FieldData>
</FormData>
4

2 回答 2

3

您可以通过 LINQ to XML 轻松修改/添加元素/属性。

 XDocument doc = XDocument.Parse(dataSetObject.GetXml());
 doc.Root.Name  = "FormData ";
 doc.Root.Add(new XAttribute("Platform", "Android"));
 ...
 doc.Save("sample.xml");

要列出子节点,

foreach (XElement element in doc.Root.Element("FieldData").Descendants())
 {
   Console.WriteLine(element.Name + " : " + element.Value );
  }
于 2012-09-26T10:16:38.863 回答
0

您可以使用 XSL-T 对原始流进行简单的转换。拥有它后,您可以在内存中编写或操作它。

于 2012-09-26T10:01:17.000 回答