Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从XML字符串中去除前置和后置垃圾_Java_Xml Parsing - Fatal编程技术网

Java 如何从XML字符串中去除前置和后置垃圾

Java 如何从XML字符串中去除前置和后置垃圾,java,xml-parsing,Java,Xml Parsing,我有一些XML字符串,其中包含XML字符串前后的一些垃圾。是否有一种方法可以修剪这些值,以便我能够成功地处理XML 当前XML: --35DEUofWdwzmcKmxp4z2RsI7REh-Y5atOY Content-Disposition: form-data; name="file"; filename="uidoc6379937292471437665.xml5114968690793017785.tmp" Content-Type: application/octet-stream

我有一些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--
--35DEUOWWZMCKMXP4Z2RSI7REH-Y5atOY
内容配置:表单数据;name=“file”;filename=“uidoc6379937292471437665.xml51149686907933017785.tmp”
内容类型:应用程序/八位字节流
2017-04-06T04:00:02.387Z
--35DWWZMCKMXP4Z2RSI7REH-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>

2017-04-06T04:00:02.387Z

这取决于您对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);

int start=source.IndexOf(“下面的代码片段应该有助于消除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);

intstart=xml.indexOf(“那么,你应该用java来标记你的问题。我已经很久没有用java了,但我记得字符串处理与C#非常相似。你能用java来标记这个问题吗,因为我对它不熟悉?我也不熟悉。我不知道我是否被允许编辑问题。它告诉我编辑队列已满。好的。我设法添加了它,但是t它说只有经过审阅后我才能看到它。只包含代码转储的答案,没有解释,不是一个好答案。导致java.lang.StringIndexOutOfBoundsException的代码:字符串索引超出范围:-1.非常感谢任何帮助理想情况下,您应该正确地从原始MIME消息中提取XML,因此这不是一个问题。