【问题标题】:How to add Xml text if xml file having same node如果xml文件具有相同的节点,如何添加Xml文本
【发布时间】:2014-04-30 05:41:27
【问题描述】:

我有以下 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>text</CommandText>
    </Query>
    </DataSet>
    <DataSet Name="table22">
    <Query>
    <DataSourceName>DS1</DataSourceName>
    <CommandText>New text2</CommandText>
    </Query>
    <Fields>
     </Fields>

我必须在字段打开和关闭节点之间添加以下 xml 文本,但我不知道怎么做。我是 xml 新手,任何人都可以帮助我。谢谢!!!

Xml file to add is:

    <Field Name="ReportId">
      <DataField>ReportId</DataField>
      <TypeName xmlns="http://schemas.microsoft.com//SQLServer//reporting//reportdesigner">System.Int64</TypeName>
    </Field>

【问题讨论】:

    标签: xml c#-4.0 xml-namespaces


    【解决方案1】:

    这个问题与您的previous question 非常相似。您可以使用相同的方法,只是我们选择 &lt;Query&gt; 元素的部分稍作更改,如下所示:

    var query = doc.Elements(ns + "DataSets")
                   .Elements(ns + "DataSet")
                   .FirstOrDefault(o => o.Attribute("Name") != null &&
                                        o.Attribute("Name").Value == "table22")
                   .Element(ns + "Query");
    

    【讨论】:

    • 抱歉,有问题的一方出现了小错误,我已经更新了它。我尝试了你的建议,bt给出了错误@var查询nullReferenceException未处理
    • 出于调试目的,尝试将查询修剪为仅.FirstOrDefault(...); 部分,是否给出相同的异常?
    • 更新了我的答案。我怀疑某些 &lt;DataSet&gt; 元素没有 Name 属性,因此在之前的尝试中导致了异常
    • 是的......先生,它工作正常。感谢您的帮助。我从过去 2 天开始解决这个问题..再次感谢 :)
    • 太好了,别忘了接受答案以确认您的问题已经解决。
    猜你喜欢
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多