2010-05-13 4 views
1

У меня есть веб-сервис, который возвращает следующий XML:Лучший способ заменить Текст XML

<Validacion> 
     <Es_Valido>NK7+22XrSgJout+ZeCq5IA==</Es_Valido> 
    </Validacion> 
    <Estatus> 
     <Estatus>dqrQ7VtQmNFXmXmWlZTL7A==</Estatus> 
    </Estatus> 
    <Generales> 
<Nombre>V4wb2/tq9tEHW80tFkS3knO8i4yTpJzh7Jqi9MxpVVE=</Nombre> 
<Apellido>jXyRpjDQvsnzZz+wsq6b42amyTg2np0wckLmQjQx1rCJc8d3dDg6toSdSX200eGi</Apellido> 
<Ident_Clie>IYbofEiD+wOCJ+ujYTUxgsWJTnGfVU+jcQyhzgQralM=</Ident_Clie>   <Fec_Creacion>hMI2YyE5h2JVp8CupWfjLy24W7LstxgmlGoDYjPev0r8TUf2Tav9MBmA2Xd9Pe8c</Fec_Creacion> 
<Nom_Asoc>CF/KXngDNY+nT99n1ITBJJDb08/wdou3e9znoVaCU3dlTQi/6EmceDHUbvAAvxsKH9MUeLtbCIzqpJq74e QfpA==</Nom_Asoc> 
     <Fec_Defuncion /> 
    </Generales> 

текст внутри тегов в зашифрованной, мне нужно, чтобы расшифровать текст, я пришел с регулярным но я не думаю, что это очень оптимально, есть ли лучший способ сделать это? благодаря!

ответ

6

Я бы не использовал регулярное выражение. Загрузите XML с чем-то вроде LINQ to XML, найдите каждый элемент, который имеет только текстовое дочерние элементы, и замените содержимое этого ребенка расшифрованной формой.

Знаете ли вы, какие элементы будут зашифрованы? Это сделает его еще проще. В основном вы хотите что-то вдоль линий: (. Я предполагаю, что вы знаете, как сделать дешифрование часть, конечно)

// It's possible that modifying elements while executing Descendants() 
// would be okay, but I'm not sure 
List<XElement> elements = doc.Descendants().ToList(); 
foreach (XElement element in elements) 
{ 
    if (ShouldDecrypt(element)) // Whatever this would do 
    { 
     element.Value = Decrypt(element.Value); 
    } 
} 

+0

Спасибо! это сработало – ryudice

1

Знаете ли вы тип используемого шифрования? Посмотрите here, чтобы получить основы возможностей Cryptology в .NET.

3

Никогда не использовать регулярные выражения для разбора XML. XmlReader и XmlDocument, найденные внутри System.Xml, обеспечивают лучший способ анализа XML.

Смежные вопросы