如何添加节点和属性到一个现有的XML文件 [英] How to append node and attribute to an existing Xml file
本文介绍了如何添加节点和属性到一个现有的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屋!
查看全文