2014-04-28 4 views
1

У меня есть следующий XML-файл. Я должен добавить узел, используя XElement и XAttribute. Как это сделать?Как добавить узел и атрибут в существующий файл 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> 

Как добавить следующий текст XML в вышеуказанный файл XML в конце как элемента «/ запроса» с помощью XElement И XAttribute

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

ответ

0

Вы можете попробовать выбрать <Query> элемент, а затем использовать AddAfterSelf() метод, чтобы добавить элемент <Fields> после <Query> элемента, например:

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 Я получаю System.Int64 как это сделать ?? ? – Roshan04

+0

Я обновил свой вопрос .... как вставить данные, если у меня есть один и тот же узел в моем XML-файле – Roshan04

+0

@ ha07 как добавить текст xml после из DataSet name = "table22" – Roshan04

Смежные вопросы