Java 当xml中包含逗号时,如何拆分逗号分隔的xml字符串?

Java 当xml中包含逗号时,如何拆分逗号分隔的xml字符串?,java,Java,我有一个包含多个xml结构的字符串,如下所示: String str = "<a><f dof=\"x,y\" /></a>,<a><f dof=\"m,n\" /></a>"; String str=“,”; 现在我想用逗号分隔符拆分这个字符串。但是我不能执行str.split(“,”,因为这将给我4个不同的字符串。我也不能做str.split(“>*你可以试试这个- 首先,替换'>'和之间的逗号。我认为最简单、最安全

我有一个包含多个xml结构的字符串,如下所示:

String str = "<a><f dof=\"x,y\" /></a>,<a><f dof=\"m,n\" /></a>";
String str=“,”;
现在我想用逗号分隔符拆分这个字符串。但是我不能执行str.split(“,”,因为这将给我4个不同的字符串。我也不能做str.split(“>*你可以试试这个-


首先,替换
'>'和之间的逗号。我认为最简单、最安全的方法是向上游移动到XML源代码,并修复那里的格式设置。这是不可能的,您可以尝试使用以下方法剥离所有分隔XML标记的逗号:

String str = "<a><f dof=\"x,y\" /></a>,<a><f dof=\"m,n\" /></a>";
str = str.replaceAll("(</\\.*>)\\s*,\\s*(<.*?>)", "$1$2");
System.out.println(str);

String str=”

你可以使用indexOf和Substring嘿…我可以在一个字符串中使用多个这样的xml。我认为这行不通。不幸的是,这是一种设计拙劣的格式。有机会将其更改为xml吗?@Madhusudan是的,你从哪里得到这种格式的?你应该用茶匙敲打它的设计者。@Madhusudan,但结果是它是(有点)很难解析。事实上使用了两种格式:XML和逗号分隔的值。我个人认为这是一个坏习惯。另一种方法是将XML元素放在另一个XML节点中,例如:
。是的。这可能是一种方法。好主意。反例:…

在不希望在逗号处拆分的位置。这不会发生我的案例。因为我将有有效的XML结构,用逗号分隔。所以我们不适用。让我们。亨利是正确的。<代码>

某个锚点内容,某个锚点内容

<代码>是有效的XML。中间的唯一逗号是文本节点。把它放在那里是完全有效的。所以我想一个逗号分隔的XML字符串i这只是一个糟糕的设计。如果逗号应该像在中那样保留,…

?@Henry,据我所知,这不是有效的XML。嗨..谢谢你的解决方案。在我的情况下,字符串将包含所有以逗号分隔的元值。我想分别处理每个元。这就是为什么我想拆分字符串作为逗号分隔符。但我会看到的如果我可以按照您提供的步骤进行操作。@TimBiegeleisen是的,XML可以包含文本内容。@Madhusudan使用此处给出的答案/注释之一来删除数据,然后使用XML解析器处理XML数据。不要尝试拆分或正则表达式。
String[] strArray = str.split("#");
String str = "<a><f dof=\"x,y\" /></a>,<a><f dof=\"m,n\" /></a>";
str = str.replaceAll("(</\\.*>)\\s*,\\s*(<.*?>)", "$1$2");
System.out.println(str);
<a><f dof="x,y" /></a><a><f dof="m,n" /></a>