[英]Best way to replace XML Text
我有一個Web服務,它返回以下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>
標簽內的文本已加密,我需要解密文本,我想出了一個正則表達式解決方案,但我認為這不是最佳選擇,有沒有更好的方法呢? 謝謝!
我不會使用正則表達式。 用LINQ to XML之類的東西加載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);
}
}
(當然,我假設您知道如何進行實際的解密。)
永遠不要使用正則表達式來解析XML。 都位於System.Xml中的XmlReader和XmlDocument提供了一種更好的解析XML的方法。
您知道使用的加密類型嗎? 在這里查看有關.NET加密功能的基礎知識
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.