gpt4 book ai didi

java dom getTextContent() 问题

转载 作者:数据小太阳 更新时间:2023-10-29 02:54:58 28 4
gpt4 key购买 nike

当我尝试从我的 servlet 的 doGet 方法访问我的 xml 数据时,它只输出不超过空格的值,包括整个值。

XML 文件:

<RealEstate>
<Property>
<Type>Apartment</Type>
<Bedrooms>2</Bedrooms>
<Bathrooms>2</Bathrooms>
<Suburb>Bondi Junction</Suburb>
<Rent>1000</Rent>
</Property>
</RealEstate>

然后我在 doGet 中从 Java Servlet 调用 Suburb:

Node suburb1 = doc.getElementsByTagName("Suburb").item(i);
out.println("<tr><td>Suburb</td>" + "<td>"+suburb1.getTextContent()+"</td></tr>");

它只输出“Bondi”而不是“Bondi Junction”

有人知道为什么吗?

最佳答案

我已经用你的 xml 试过你的代码,它为我打印出了整个文本内容,很奇怪。总之,Node#getTextContext 方法返回当前节点及其子节点的文本内容。我建议您使用 node.getFirstChild().getNodeValue(),它会为您的节点打印出文本内容,而不是它的后代。另一种方法是遍历 Suburbs 节点的子节点。你也应该看看here .

这是我的主程序,使用 getFirstChild().getNodeValue()getChildNodes().item(i).getNodeValue()< 两次打印相同的文本:

public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException  {

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("dom.xml"));

NodeList nodeList = doc.getElementsByTagName("Suburb");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.hasChildNodes()) {

System.out.println("<tr><td>Suburb</td>" + "<td>"+node.getFirstChild().getNodeValue()+"</td></tr>");

NodeList textNodeList = node.getChildNodes();
StringBuilder textBuilder = new StringBuilder();
for (int j = 0; j < textNodeList.getLength(); j++) {
Node textNode = textNodeList.item(j);
if (textNode.getNodeType() == Node.TEXT_NODE) {
textBuilder.append(textNode.getNodeValue());
}
}
System.out.println("<tr><td>Suburb</td>" + "<td>" + textBuilder.toString() + "</td></tr>");
}
}
}

这是我的 xml 输出:

<tr><td>Suburb</td><td>Bondi Junction</td></tr>
<tr><td>Suburb</td><td>Bondi Junction</td></tr>

关于java dom getTextContent() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527195/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com