网站开发安装环境,资料网站怎么做,表白网站制作代码,网址大全qq浏览器我以前从未处理过XML,所以我不确定如何在XML文件中处理CDATA.我迷失在节点,父节点,子节点,nList等中.谁能告诉我这些代码片段的问题是什么#xff1f;我的getTagValue()方法适用于除“详细信息”之外的所有标记,“详细信息”是包含CDATA的标记......NodeList nList doc.getEl…我以前从未处理过XML,所以我不确定如何在XML文件中处理CDATA.我迷失在节点,父节点,子节点,nList等中.谁能告诉我这些代码片段的问题是什么我的getTagValue()方法适用于除“详细信息”之外的所有标记,“详细信息”是包含CDATA的标记......NodeList nList doc.getElementsByTagName(Assignment);for (int temp 0; temp nList.getLength(); temp) {Node nNode nList.item(temp);if (nNode.getNodeType() Node.ELEMENT_NODE) {Element eElement (Element) nNode;results (Class : getTagValue(ClassName, eElement)) (Period : getTagValue(Period, eElement)) (Assignment : getTagValue(Details, eElement));myAssignments.add(results);}}.....private String getTagValue(String sTag, Element eElement) {NodeList nlList eElement.getElementsByTagName(sTag).item(0).getChildNodes();Node nValue (Node) nlList.item(0);if((CharacterData)nValue instanceof CharacterData){return ((CharacterData) nValue).getData();}return nValue.getNodeValue();}解决方法:我怀疑你的问题出在getTagValue方法的以下代码行中Node nValue (Node) nlList.item(0);你总是得到第一个孩子但是你可能不止一个.以下示例有3个子节点文本节点“detail”,CDATA节点“with cdata”和文本节点“here”detail here如果你运行你的代码,你只得到“细节”,你就会失去其余部分.以下示例有1个子节点CDATA节点“此处带有cdata的详细信息”如果你运行你的代码,你会得到一切.但是上面这样写的例子如下现在有3个孩子因为空格和换行被选为文本节点.如果您运行代码,则会获得带有换行符的第一个空文本节点,其余部分将丢失.您要么遍历所有子项(无论多少)并连接每个子项的值以获得完整结果,或者如果区分纯文本和CDATA内的文本并不重要,则在上面设置合并属性文档制作工厂首先DocumentBuilderFactory docFactory DocumentBuilderFactory.newInstance();docFactory.setCoalescing(true);...标签cdata,java,dom,xml来源 https://codeday.me/bug/20190902/1789863.html