我有一个文件字符串,如下所示
<html>
<head>
<body>
<normalstring>
<ul>
<li>
</li>
</ul>
</normalstring
<teststring name="one" delete="yes">
<ul>
<li>
</li>
</ul>
</teststring>
<teststring name="one" delete="yes">
<ul>
<li>
</li>
</ul>
</teststring>
</body>
</head>
</html>
我想找到字符串节点<teststring>
并从<teststring> to </teststring>
中取出整个字符串
拿了字符串后,我想找到字符串有“删除”属性吗?
如果找到的字符串有“删除”,我想用“空”替换整个字符串(我的意思是我想删除找到的子字符串,它的内容是“
如果找到的字符串中没有“delete”属性,我想仅删除节点<teststring name="one" delete="yes">
而不是内部内容。
我想在字符串中处理此问题而不是将字符串转换为文档。因为我在解析字符串后会遇到一些问题。
谢谢, JEY
答案 0 :(得分:0)
首先,您应该阅读一些XML解析文档。有几个XML解析器,但我通常使用DOM解析器。很棒的文档可以在www.w3schools.com找到 要访问节点,您必须创建DocumentBuilderFactory,documentBuilder和Document。接下来,您必须在文档中搜索所需的节点名称,如下例所示:
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder b = f.newDocumentBuilder();
Document doc = b.parse(File file);
NodeList nodes = doc.getElementsByTagName("teststring");
接下来,要检索节点属性,您必须创建一个Element对象来存储NodeList中的特定节点,并使用String来存储属性的值。您可以创建一个循环来遍历存储的所有节点,并且只能到达您想要的节点。
Element ele = nodes.item(i);
String s = ele.getAttribute("delete");
然后,您可以检查s
中存储的字符串是否与.equals
命令匹配“是”。我把最后一部分留给你,弄清楚如何删除你想要的字段。希望这有助于:)