2014-04-28 78 views
0

以及我有下面的XML文件:如何编写特定的节点后,在XML文件中的XML文本

<Query> 
     <DataSourceName>DS1</DataSourceName> 
     <CommandText>SELECT FirstName,Lastname FROM Person</CommandText> 
     </Query> 
     <Fields> 
     <Field Name="FirstName"> 
      <DataField>FirstName</DataField> 
      <rd:TypeName>System.String</rd:TypeName> 
     </Field> 
     <Field Name="Lastname"> 
      <DataField>Lastname</DataField> 
      <rd:TypeName>System.String</rd:TypeName> 
     </Field> 
    </Fields> 

笏我必须做的是,我必须写从节点“田” XML文本“/字段“后节点”查询“..如何做到这一点..plz帮助我

+0

:你能描述你真的想达到什么样的? “XML文本从节点”字段“到”/字段“节点”查询“后描述你的情况,以便您的问题得到解决 – Smack

+0

以及我有XML文件是:<?xml version =”1.0“?> hello \t \t 谷歌 \t www.google.co.uk 和我有添加bove xml文件在这个xml文件后 node..how做到这一点 – Roshan04

回答

0

您可以使用Xdocument来处理xml。您可以参考以下代码片段将元素添加到标签中。希望这有助于

XDocument xdoc = XDocument.Load(test.xml"); 
XNamespace ns = "schemas.microsoft.com/sqlserver/reporting/2005/01"; 
     XNamespace ns1 = "schemas.microsoft.com/SQLServer/reporting"; 


     xdoc.Root.Element(ns + "Fields").Add(new XElement("Field", new XAttribute("Name","ReportId"), new XElement(ns1 + "TypeName", "System.Int64"), new XElement("DataField", "ReportId"))); 


xdoc.Save(test.xml"); 

添加命名空间是很重要的位置。我附上了源文件和结果文件供您参考。

源文件:

<?xml version="1.0" encoding="utf-8"?> 
<Report xmlns="schemas.microsoft.com/sqlserver/reporting/2005/01" xmlns:rd="schemas.microsoft.com/SQLServer/reporting"> 
    <Query> 
    <DataSourceName>DS1</DataSourceName> 
    <CommandText>SELECT FirstName,Lastname FROM Person</CommandText> 
    </Query> 
    <Fields> 
    <Field Name="FirstName"> 
     <DataField>FirstName</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
    </Field> 
    <Field Name="Lastname"> 
     <DataField>Lastname</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
    </Field> 
    </Fields> 
</Report> 

结果文件:

<?xml version="1.0" encoding="utf-8"?> 
<Report xmlns="schemas.microsoft.com/sqlserver/reporting/2005/01" xmlns:rd="schemas.microsoft.com/SQLServer/reporting"> 
    <Query> 
    <DataSourceName>DS1</DataSourceName> 
    <CommandText>SELECT FirstName,Lastname FROM Person</CommandText> 
    </Query> 
    <Fields> 
    <Field Name="FirstName"> 
     <DataField>FirstName</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
    </Field> 
    <Field Name="Lastname"> 
     <DataField>Lastname</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
    </Field> 
    <Field Name="ReportId" xmlns=""> 
     <rd:TypeName>System.Int64</rd:TypeName> 
     <DataField>ReportId</DataField> 
    </Field> 
    </Fields> 
</Report> 
+0

@ Roshan04你合并了两个xml文件吗? – Smack

+0

以及它给出的错误,rd:未声明的前缀..没有m不合并两个xml文件。我根据您的建议更改我的代码 – Roshan04

+0

@ Roshan04您必须指定名称空间,如XNamespace ns =“schemas.microsoft.com/sqlserver/报告/ 2005/01" ; – Smack

相关问题