2014-01-08 2 views
0

У меня есть XML-файл:C# - Как разбить, заменить содержимое xml-файла?

<xml ?iwes sf> 
    <product> 
     <name> Computer </name> 
     <details>a product of Dell</details> 
     <sender> sender no name</sender> 
    </product> 
</xml> 

я хочу разделить на:

<xml ?iwes sf>,  ,<product>,   ,<name>,Computer,</name>,..., ,</xml> 

Затем я перевести текст контента (компьютер, продукт Dell, отправитель не имя) для корейского языка. Наконец, я хочу присоединиться к

<xml ?iwes sf>,  ,<product>,   ,<name>,Computer,</name>,..., ,</xml> 

с результатом перевода:

<xml ?iwes sf> 
    <product> 
     <name> 컴퓨터</name> 
     <details>Dell의 제품 </details> 
     <sender> 아니오 유명한 송신기 </sender> 
    </product> 
</xml> 

я использовал Regex:

string[] gettag = Regex.Split(inputText.Text, "(<.*?>)|(.+?(?=<|$))"); 

, но это не так, это не можите делать то, что я хочу, я Cann 't присоединяйте тег xml к местоположению раньше, потому что он не может получить «\ t»! Что мне делать? Мой английский уровень нехорошо. Я надеюсь, что каждый может понять, что я сказал и помог мне! Спасибо!

+2

Вы считали правильный синтаксический анализатор XML перед регулярным выражением? – Jerry

+1

Не используйте RegEx для этого. Используйте Linq или XPath. – germi

+0

Я просто разделил весь файл. Если я разделить файл по строке, я могу проверить его. – hazymnc

ответ

0

y не какое-то выражение лямбда?

вы можете попробовать это.

 IEnumerable<XElement> xx = xdoc.Root.Descendants().Elements().Where(c => { if (c.Name == "name") { c.Value = "Dell"; } else if (c.Name == "details") { c.Value = "Dell Detial"; } return true; }).Select(c => c); 


      // Loop. 
      string x = string.Empty; 
      foreach (XElement x1 in xx) 
      { 
       x += x1.ToString(); 
      } 

     Console.WriteLine(x.ToString()); 
Смежные вопросы