【问题标题】:How change an attribute value using Xpath and the fn:replace function?如何使用 Xpath 和 fn:replace 函数更改属性值?
【发布时间】:2012-03-07 20:26:21
【问题描述】:

是否可以使用 XPath 替换功能一次将所有名为 Entry 的属性的值更改为新值?或者我必须手动遍历所有节点并自己替换每个属性值?

我有这个示例 XML

<?xml version="1.0" encoding="UTF-16"?>
<Root>
  <Items>
    <action type="xta">
      <Menu Type="2"  Entry="Foo1"  />
      <Menu Type="1"  Entry="Foo2"/>
      <Menu Type="1"  Entry="Foo3"/>
      <Menu Type="1"  Entry="Foo4"/>
    </action>
  </Items>
</Root>

我想要这个

<?xml version="1.0" encoding="UTF-16"?>
<Root>
  <Items>
    <action type="xta">
      <Menu Type="2"  Entry="Bar\Foo1"  />
      <Menu Type="1"  Entry="Bar\Foo2"/>
      <Menu Type="1"  Entry="Bar\Foo3"/>
      <Menu Type="1"  Entry="Bar\Foo4"/>
    </action>
  </Items>
</Root>

如果不能直接使用 XPath,那么这是使用 c# 完成此操作的最佳方式吗?

【问题讨论】:

    标签: c# xml xpath


    【解决方案1】:

    您要求的不是直接的 XPath 导航操作,而是一种转换。有多种方法可以完成更改 Xml,但您最好的两种方法可能是:

    1. 您可以将XslCompiledTransform Class 与xslt 一起使用。 (另见Using the XslCompiledTransform Class
    2. 您可以使用LINQ to XML 中的XDocument Class 并通过C# 代码进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-09
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 2016-12-28
      相关资源
      最近更新 更多