[英]Best way to replace values in XML content?
我有一个String内容,其中包含一些XML(以及其他文本)。 我想在此XML内部搜索应该屏蔽的敏感支付数据(例如信用卡号)。
该字符串不是单个XML内容(我可以使用JAXB解析或使用dom遍历),但也包含其他值,如标题,例如:
Response-Code: 200 Encoding: ISO-8859-1 Content-Type: text/xml Headers: {connection=[Keep-Alive], ... <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP:Body> ... <ns2:Payment> <ns2:CreditCard Number="1234567723" />
什么是最好找到内容并使用value.replaceAll(".", "X");
替换数字value.replaceAll(".", "X");
? 我的意思是,我怎样才能最好地在xml中找到要替换的值?
难道你不能尝试获取String cn = "CreditCard Number="
的索引,然后替换从那里开始的子字符串,并从那里(信用卡号码的长度)前进16个字符?
或者我错误地假设您将整个标题作为字符串?
您还可以使用正则表达式进行模式匹配。
注意对XML进行字符串甚至正则表达式替换等快捷方式。 你很容易错过很多变化:
Number
可以作为CreditCard
以外的元素的属性出现。 CreditCard
元素和Number
属性。 另请参阅您是否可以提供一些示例,说明为什么难以使用正则表达式解析XML和HTML?
以正确的方式做到这一点并不难:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.