2014-04-28 33 views
1

我有下面的XML文件。我要補充使用XElementXAttribute一個節點。這個怎麼做?如何添加節點和屬性,以現有XML文件

<?xml version="1.0" encoding="UTF-8"?> 
    <Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"> 
     <DataSets> 
      <DataSet Name="Data"> 
       <Query> 
        <DataSourceName>DS1</DataSourceName> 
        <CommandText>SELECT FirstName,LastName FROM Person</CommandText> 
       </Query> 
</DataSet> 
    <DataSet Name="table22"> 
     <Query> 
     <DataSourceName>DS1</DataSourceName> 
     <CommandText>New text2</CommandText> 
     </Query> 

如何在兩個「/查詢」元素的末尾用XElementXAttribute添加下面的XML文本上面的XML文件

<Fields> 
     <Field Name="ReportId"> 
      <DataField>ReportId</DataField> 
      <rd:TypeName>System.Int64</rd:TypeName> 
     </Field> 

回答

0

你可以嘗試先選擇<Query>元素,那麼使用AddAfterSelf()方法後<Query>元素添加<Fields>元件,例如:

var doc = XElement.Parse(xml); 
XNamespace ns = "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition"; 
var query = doc.Element(ns + "DataSets").Element(ns + "DataSet").Element(ns + "Query"); 

Console.WriteLine("before :"); 
Console.WriteLine(doc.ToString()); 
Console.WriteLine(""); 

XNamespace rd = "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"; 
var field = new XElement(ns+"Fields", 
         new XElement(ns+"Field", new XAttribute("Name", "ReportId") 
             , new XElement(ns+"DataField", "ReportId") 
             , new XElement(rd + "TypeName", "System.Int64"))); 
query.AddAfterSelf(field); 

Console.WriteLine("after :"); 
Console.WriteLine(doc.ToString()); 
+0

我想添加 System.Int64,BT我得到<類型名的xmlns = 「http://schemas.microsoft.com//SQLServer//reporting//reportdesigner」> System.Int64如何做呢?? ? – Roshan04

+0

我已經更新了我的問題....如何插入數據如果我有相同的節點在我的XML文件 – Roshan04

+0

@ HA07如何添加XML文本數據集名稱=「表22」 – Roshan04

相關問題