2010-05-18 2 views
2

Мне нравится заменять некоторые атрибуты внутри xml (string) на C#.Advanced replace in C#

Пример XML:

<items> 
    <item x="15" y="25"> 
    <item y="10" x="30"></item> 
    </item> 
    <item x="5" y="60"></item> 
    <item y="100" x="10"></item> 
</items> 

В этом случае я бы изменить рентгеновские атрибуты к комбинированному значению х и у.

Результат XML:

<items> 
    <item x="40" y="25"> 
    <item y="10" x="40"></item> 
    </item> 
    <item x="65" y="60"></item> 
    <item y="100" x="110"></item> 
</items> 
+0

Как вы относитесь к «комбинированным»? X = "10", y = "12" становятся x = "22" или x = "1012"? –

ответ

11

Пожалуйста, не делайте это с помощью регулярных выражений. Это очень легко с чем-то вроде LINQ to XML:

XDocument doc = XDocument.Load("input.xml"); 
foreach (var item in doc.Descendants("item")) 
{ 
    int x = (int) item.Attribute("x"); 
    int y = (int) item.Attribute("y"); 
    item.SetAttributeValue("x", x + y); 
} 
doc.Save("output.xml"); 
+0

Спасибо, отлично поработал! – Andreas