Java XML解析-删除第一个标记
我想从XML字符串中删除一些标记。这听起来很简单,我相信它是正确的,但是我在删除主标签和将子标签保留在里面时遇到了问题 以下是一个例子:Java XML解析-删除第一个标记,java,xml,parsing,jdk1.7,Java,Xml,Parsing,Jdk1.7,我想从XML字符串中删除一些标记。这听起来很简单,我相信它是正确的,但是我在删除主标签和将子标签保留在里面时遇到了问题 以下是一个例子: <Tag1 version = ""> <SubTag1> </SubTag1> <SubTag2> </SubTag2> </Tag1> 我只想保留“SubTag2”和其中的所有内容 哪种方法是最好的 我尝试使用REGEX删除子标签1,但我发现这在X
<Tag1 version = "">
<SubTag1>
</SubTag1>
<SubTag2>
</SubTag2>
</Tag1>
我只想保留“SubTag2”和其中的所有内容
哪种方法是最好的
我尝试使用REGEX删除子标签1,但我发现这在XML中从来都不是一个好的解决方案:
result = result.replaceAll("<SubTag1>[\\s\\S]*?</SubTag1>","");
result=result.replaceAll(“[\\s\\s]*?”,”);
提前感谢。您可以使用JSoup()或其他库来解析字符串。
然后,您可以访问DOM树并仅提取具有特定标记的部分
它看起来是这样的:
String xml = "<Tag1 version = \"\"><SubTag1></SubTag1><SubTag2></SubTag2></Tag1>";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
Elements subTag2 = doc.getElementsByTag("SubTag2");
subTag2.get(0);
您可以使用JSoup()或其他库来解析字符串。
然后,您可以访问DOM树并仅提取具有特定标记的部分
它看起来是这样的:
String xml = "<Tag1 version = \"\"><SubTag1></SubTag1><SubTag2></SubTag2></Tag1>";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
Elements subTag2 = doc.getElementsByTag("SubTag2");
subTag2.get(0);
您应该创建一个xml类,并将xml映射到此类。然后对类中生成的对象进行所需的更改,然后再次创建xml。这里有一个生成java类的链接:Hi@Filip123go,您传递的链接非常有趣,但我发现的不是这个解决方案,因为我想将所有内容都保存在“SubTag2”中,但我不需要知道哪些节点有,这些节点可能会随时间而变化。您应该创建一个xml类,并将xml映射到这个类。然后对类中生成的对象进行所需的更改,然后再次创建xml。这里有一个生成java类的链接:Hi@Filip123go,您传递的链接非常有趣,但是这个解决方案不是我要找到的,因为我想将所有内容都保存在“SubTag2”中,但我不需要知道哪些节点有,这些节点可能会随着时间而改变。谢谢@Xantipus,这很有用。我使用w3c.dom.document进行解析,但无法使XML适应我想要的内容。取而代之的是,我选择只使用我需要的几个值创建一个新的XML,并创建我自己的标记。谢谢你!谢谢@Xantipus,这很有用。我使用w3c.dom.document进行解析,但无法使XML适应我想要的内容。取而代之的是,我选择只使用我需要的几个值创建一个新的XML,并创建我自己的标记。谢谢你!