如何添加节点和属性到一个现有的XML文件 [英] How to append node and attribute to an existing Xml file

查看:185
本文介绍了如何添加节点和属性到一个现有的XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有下面的XML文件。我要补充使用的XElement XAttribute 的一个节点。如何做到这一点。



 <?XML版本=1.0编码=UTF-8> 
<报告的xmlns =http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition的xmlns:RD =http://schemas.microsoft.com/SQLServer/reporting/reportdesigner >
<&数据集GT;
<集名=数据>
<查询>
<&的datasourcename GT; DS1< /&的datasourcename GT;
<&CommandText中GT; SELECT名字,姓氏从Person< /&CommandText中GT;
< /查询>
< /数据集>
<集名=表22>
<查询>
<&的datasourcename GT; DS1< /&的datasourcename GT;
<&CommandText中gt;新建文本2< /&CommandText中GT;
< /查询>



如何使用在两个/查询元素的末尾添加下面的XML文本上面的XML文件的XElement XAttribute

 <&领域GT; 
<字段名称=ReportId>
<&数据字段GT; ReportId< /数据字段>
< RD:类型名> System.Int64< / RD:类型名>
< /场及GT;


解决方案

您可以尝试选择 <查询> 元素,然后再使用的 AddAfterSelf() 方法添加<&领域GT; <元素;查询> 元素,例如:

 变种文档= XElement.Parse(XML); 
的XNamespace NS =http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition; 。
VAR的查询= doc.Element(NS +数据集)元素(NS +数据集)元素(NS +查询);

Console.WriteLine(前:);
Console.WriteLine(doc.ToString());
Console.WriteLine();

的XNamespace RD =http://schemas.microsoft.com/SQLServer/reporting/reportdesigner;
变种场=新的XElement(NS +字段,
新的XElement(NS +场,新的XAttribute(姓名,ReportId)
,新的XElement(NS +数据字段 ReportId)
,新的XElement(RD +类型名,System.Int64)));
query.AddAfterSelf(场);

Console.WriteLine(之后:);
Console.WriteLine(doc.ToString());


I have the following XML file. I have to add a node using XElement and XAttribute. How to do this?

   <?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>

How to add following XML text to above xml file at the end of both "/query" element using XElement And XAttribute

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

解决方案

You can try to select <Query> element first, then use AddAfterSelf() method to add <Fields> element after <Query> element, for example :

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());

这篇关于如何添加节点和属性到一个现有的XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆