我有一些XML字符串,其中包含xml字符串之前和之后的一些垃圾。有没有办法修剪这些值,以便我可以成功处理XML。
当前XML:
--35DEUofWdwzmcKmxp4z2RsI7REh-Y5atOY
Content-Disposition: form-data; name="file"; filename="uidoc6379937292471437665.xml5114968690793017785.tmp"
Content-Type: application/octet-stream
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<product xmlns="http://www.example.com/abc/2014/product">
<timestamp>2017-04-06T04:00:02.387Z</timestamp>
</product>
--35DEUofWdwzmcKmxp4z2RsI7REh-Y5atOY--
新XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<product xmlns="http://www.example.com/abc/2014/product">
<timestamp>2017-04-06T04:00:02.387Z</timestamp>
</product>
答案 0 :(得分:1)
这取决于你对xml的了解程度。如果它与上述类似,您可以这样做:
int start = source.IndexOf("<?xml");
source = source.Remove(0, start);
int end = source.IndexOf("</product>") + "</product>".Length;
source = source.Remove(end, source.Length-end);
更多错误检查可能是合适的 我在这里假设C#,其他编程语言也有类似的结构。
答案 1 :(得分:-1)
下面的代码段应该有助于消除XML字符串中不需要的字符。如有任何问题,请分享您的意见。
int start = xml.indexOf("<?xml");
String preGarbageValue = xml.substring(0, start);
xml = StringUtils.stripStart(xml, preGarbageValue);
int end = xml.lastIndexOf("</product>")+"</product>".length();
String postGarbageValue = xml.substring(end, xml.length());
xml = StringUtils.stripEnd(xml, postGarbageValue);