我在XML消息中有一個信用卡號碼,我想用正則表達式找到信用卡號碼並加密它。所有的數字都是16個字符長,它們並不總是在xml中的相同位置,所以基本上我認爲我只需要找到一個16個字符的字符串並解密它,但我不知道如何。在XML中查找信用卡號?
例子:
<Message>
<PaymentInfo>
<CCNumber>333333333333333</CCNumber>
</PaymentInfo>
</Message>
另一種方式可能是:
<Message>
<CardInfo>
<CreditNumber>333333333333333</CreditNumber>
</CardInfo>
</Message>
將會對這種解決工作,這是在VB,但因爲原來的代碼是VB。
Public Shared Function EncryptXmlLog(xml As String) As String
'Get possible credit card numbers (13 - 16 characters)
Dim creditCardNumbers As MatchCollection = Matches(xml, "\b\d{13,16}\b")
For Each creditCardNumber As RegularExpressions.Match In creditCardNumbers
xml = xml.Replace(creditCardNumber.Value, Encrypt(creditCardNumber.Value))
Next
Return xml
End Function
需要更多的信息。你的問題非常模糊。爲什麼不使用'XmlDocument'類?你能發佈一個'XML'格式的例子嗎? – Jack
你有沒有一個xml的例子?它的結構是否使包含信用號碼的元素能夠以可預測的方式進行識別? – PHeiberg
@PHeiberg - 不,每個xml都不一樣,這就是爲什麼我提到他們並不總是在同一個地方。在某些地方,他們可能在 和其他地方可能是 –
Xaisoft