2012-03-07 4 views
0

XPath 바꾸기 기능을 사용하여 Entry이라는 모든 속성 값을 한 번에 새 값으로 변경할 수 있습니까? 또는 모든 노드를 수동으로 반복하고 각 속성 값을 직접 바꾸어야합니까? Xpath와 fn : replace 함수를 사용하여 속성 값을 변경하는 방법은 무엇입니까?

나는이 사용하는 C# .NET을 acomplish하는 가장 좋은 방법이다, 내가 직접 XPath를 사용하여 가능하다이

<?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> 

만약을 얻을 싶어이 샘플 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> 

했다?

답변

0

당신이 요구하는 것은 곧바로 XPath 네비게이션 작업이 아니라 변형입니다. 이 XML을 변경 달성하기 위해 여러 가지 방법이 있습니다,하지만 당신이 가장 아마도 다음과 같습니다

  1. 당신은 XSLT로 XslCompiledTransform Class를 사용할 수 있습니다. (Using the XslCompiledTransform Class 참조)
  2. XDocument ClassLINQ to XML에 사용할 수 있으며 C# 코드를 통해 변경할 수 있습니다.
관련 문제