【问题标题】:How to Change Inner text of xml file which having duplicate node using Xpath [duplicate]如何使用 Xpath 更改具有重复节点的 xml 文件的内部文本 [重复]
【发布时间】:2014-04-26 12:16:06
【问题描述】:
<?xml version="1.0" ?> 
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
   <buttons>   
      <workshop1>hello</workshop1>  
       <workshop1>Google</workshop1>    
      <url1>www.google.co.uk</url1> 
    </buttons>
    </Reports>

上面是我的 xml 文件。我应该如何更改 Duplicate Node.for 上面 xml 中的示例的内部文本我必须在 c# 中使用 XPath 将第二个节点 Google 更改为 yahoo。谢谢

【问题讨论】:

    标签: xml c#-4.0 xml-namespaces


    【解决方案1】:

    为命名空间 URI 映射声明适当的前缀,然后您可以使用 XPath 查询,使用该前缀加上指定元素索引来选择第二个 &lt;workshop1&gt; 元素,例如:

    XmlDocument doc = new XmlDocument();
    doc.Load("C:\\test.xml");
    XmlNamespaceManager oManager = new XmlNamespaceManager(doc.NameTable);
    oManager.AddNamespace("ns", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
    var google = doc.SelectSingleNode("/ns:Report/ns:buttons/ns:workshop1[2]", oManager).InnerText;
    

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2023-03-30
      • 2019-02-23
      • 1970-01-01
      • 2018-08-10
      • 2015-02-22
      相关资源
      最近更新 更多