- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
当我尝试从我的 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/
所以我一直在尝试按预订顺序收集所有节点名称及其内容。因此,我使用递归方法从 XML 文件中获取所有节点以及文本。问题是每当我执行它时,我都会不断在 ArrayList 中获取空字符串。空字符串位于 A
当我尝试从我的 servlet 的 doGet 方法访问我的 xml 数据时,它只输出不超过空格的值,包括整个值。 XML 文件: Apartment
我试图只获取顶级文本,而不获取任何子文本。所以我有以下 xml: text1 text2 我只想得到父(text1)文本。所以在这个例子中我会做 node.getTextContent
我正在尝试从 xml 节点获取文本。该代码似乎可以识别该节点。这段代码 String L = "节点长度:"+ nList.getLength()+ "文本:"+ nList.item(0).toSt
我有以下XML和Xpath代码..使用node.getContent()我得到完整SUID元素的字符串返回..获取每个元素并使用recid,suid构造一个新对象的最佳方法是什么,组 谢谢!
下面是抛出 AbstractMethodError 的示例代码块: import org.w3c.dom.Node; .. Node root = soapBody.getElementByTagNa
Node.getTextContent() 返回当前节点及其子节点的文本内容。 有没有办法获取当前节点的文本内容,而不是后代的文本。 例子 XML is a browser
我正在尝试在 JUnit 测试中构建 xml 文档。 doc=docBuilder.newDocument(); Element root = doc.createElement("Setting
我正在尝试将 ckfinder 合并到我的 Apache/Tomcat 系统中。我遇到的问题是,当配置文件尝试读取 configuration.xml 时,它会很好地返回节点,但在节点上调用 getT
有人遇到过这个问题吗? 我在 Java 7 中使用 javax.xml.soap.SOAPElement 的 getTextContent()。但是当我使用 Java 8 时,它给出编译错误“方法 g
在我的项目中,我遇到了一个问题 The method getTextContent() is undefined for the type Node 我目前正在使用 jdk 1.5,谁能告诉我这是怎么
我有使用 DOM 解析器解析的 xml 配置文件。当我使用 node.getTextContent(); 从子节点获取值时,我无法删除字符串 value 中的空格。当我给出没有空格的值时,它会起作用。
我使用的是旧版本的 JRE (1.4),其中 Node.getTextContents() 和 Node.setTextContents() 不可用。做这些 Action 还有很长的路要走吗? 示例
java 源代码不能用 jdk 6 编译。 import org.w3c.dom.Node; Node node = list.item(0); String txtContent = node
本文整理了Java中org.opensaml.xml.schema.impl.XSAnyImpl.getTextContent()方法的一些代码示例,展示了XSAnyImpl.getTextConte
本文整理了Java中org.opensaml.core.xml.schema.XSAny.getTextContent()方法的一些代码示例,展示了XSAny.getTextContent()的具体用
我编写了一些 java 代码,使用 DOM 解析 XML,以便在我的程序中加载数据。使用 Eclipse“format”函数格式化 XML 时,我遇到了一个问题:以前从文档元素中工作的 getText
本文整理了Java中org.opendaylight.controller.netconf.util.xml.XmlElement.getTextContent()方法的一些代码示例,展示了XmlEl
本文整理了Java中org.opendaylight.controller.config.util.xml.XmlElement.getTextContent()方法的一些代码示例,展示了XmlEle
我遇到了 org.w3c.dom 的 Node.getTextContent() 的问题。我有以下代码块: String name = document.getElementsByTagName("n
我是一名优秀的程序员,十分优秀!