Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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_Jdk1.7 - Fatal编程技术网

Java 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

我想从XML字符串中删除一些标记。这听起来很简单,我相信它是正确的,但是我在删除主标签和将子标签保留在里面时遇到了问题

以下是一个例子:

<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,并创建我自己的标记。谢谢你!