Tag: dom

Android,org.w3c.dom:没有可用的validationDocumentBuilder实现

我正在尝试解析Android 2.3.3上的XML文档,但似乎没有validation解析器。 我需要validation的原因是忽略XML文件中的空格(空格,回车,换行等)。 多数民众赞成我要如何解析文件: DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); dbfac.setValidating(true); dbfac.setIgnoringElementContentWhitespace(true); DocumentBuilder docBuilder; docBuilder = dbfac.newDocumentBuilder(); Document d = docBuilder.parse(file); file是文件位置的URL作为字符串。 执行此代码的最后一行时,抛出以下exception: javax.xml.parsers.ParserConfigurationException: No validating DocumentBuilder implementation available 当我取出dbfac.setValidating(true) ,没有exception发生,但后来我dbfac.setValidating(true)了空白问题。 有谁知道如何解决这个问题? 我必须使用另一个解析器吗?

元素节点和文本节点之间的区别

John Computer Technology 6 E Foo Industrial Electronics 6 E 在简单的XML语言中, data 是一个元素。 根据我上面的XML, … 是一个元素,其他标签也是如此。 在DOM解析中,有一个Element节点和一个Text节点。 参考我正在使用的书, 是一个Element节点, , ,其他嵌套标签是Text节点。 那么,如果我正确理解DOM,所有外部标签都是Elements ,包含实际数据的标签是Text节点?

带有DOM /蜡染的事件clic:恢复引用符号的use标签

晚上好, 我目前正在研究Java中的图形应用程序(处理svg文件),使用batik直接操作DOM文档svg。 我在“符号”标签中声明的各种元素由标签“使用”使用和/显示。 这里的文件svg: 我在svg的一个元素上添加了一个事件: ((EventTarget) objAdd.getNodeUse()).addEventListener( SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); ((EventTarget) objAdd.getNodeDefs()).addEventListener( SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); 在一个区域(与组元素g匹配) Element elt = doc.getElementById(“nameZone1”); EventTarget t = (EventTarget)elt; t.addEventListener(SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); EObject类实现了org.w3c.dom.events.EventListener: import org.w3c.dom.Element; import org.w3c.dom.events.Event; public class EObject implements org.w3c.dom.events.EventListener { public void handleEvent(Event evt) { System.out.println(“YOUPIIII JE SUIS CLIQUE”); Element e = (Element) evt.getCurrentTarget(); […]

MessageFactory的jaxp对象缓存

可以重用javax.xml.soap.MessageFactory吗? 即 msgFactory = MessageFactory.newInstance(); 我可以缓存msgFactory并根据需要重用它来创建新的SOAPMessages吗? 还应该是msgFactory.createMessage(); 如果可以在代码中重用msgFactory,可以同步吗? 更新: 同样在单线程代码中,我可以存储msgFactory来反复创建SOAPMessages,以免每次都创建一个MessageFactory的新实例谢谢

Java中使用params的高效XSLT管道

这个问题的最佳答案描述了一种在Java中实现高效XSLT管道的技术: Java中的高效XSLT管道(或将结果重定向到源) 不幸的是,虽然Transformer似乎公开了一个用于设置XSLT参数的API,但这似乎没有任何效果。 例如,我有以下代码: Transformer.java import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.Templates; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import javax.xml.transform.sax.SAXResult; import javax.xml.transform.Transformer; import java.io.File; public class MyTransformer { public static void main(String[] args) throws javax.xml.transform.TransformerConfigurationException, javax.xml.transform.TransformerException{ SAXTransformerFactory stf = (SAXTransformerFactory)TransformerFactory.newInstance(); // These templates objects could be reused and obtained from elsewhere. Templates templates1 = stf.newTemplates(new StreamSource( […]

使用XML DOM添加名称空间前缀XML String

我想使用XML DOM为XML String中的所有元素添加名称空间前缀。 例如我的字符串以这种方式出现: test string test string test string test string test string test string test string 我想要一个输出XML: test string test string test string test string test string test string test string 如何在Java中实现最佳效果?

Xerces DOM解析器非常慢?

目前,我正在尝试使用JTidy清理HTML文件,将其转换为XHTML并将结果提供给DOM解析器。 以下代码是这些努力的结果: public class HeaderBasedNewsProvider implements INewsProvider { /* … */ public Collection getNewsEntries() throws NewsUnavailableException { Document document; try { document = getCleanedDocument(); } catch (Exception e) { throw new NewsUnavailableException(e); } System.err.println(document.getDocumentElement().getTextContent()); return null; } private final Document getCleanedDocument() throws IOException, SAXException, ParserConfigurationException { InputStream input = inputStreamProvider.getInputStream(); Tidy tidy = new Tidy(); […]

DOM解析器错误的childNodes计数

这很奇怪,但让我尽力把它放在一边。 我有一个XML,我正在通过桌面的正常方式阅读并通过DOM解析器解析它。 0 abc App abc Wallet 11 Ss22 Adding New cake 读取XML以获取孩子。 Document doc = docBuilder.parse(“C://Users//Desktop//abc.xml”); Node root = doc.getElementsByTagName(“Abase”).item(0); NodeList listOfNodes = root.getChildNodes(); //Sysout Prints 13 所以这里我的逻辑运行良好。当我尝试通过将相同的XML推送到队列并读取它并获取子节点时,它给了我没有。 子节点数为6。 Document doc=docBuilder.parse(new InputSource(new ByteArrayInputStream(msg.getBytes(“UTF-8”)))); Node root = doc.getElementsByTagName(“Abase”).item(0); NodeList listOfNodes = root.getChildNodes(); //Sysout Prints 6 这搞砸了我解析XML的逻辑。任何人都可以帮助我吗? UPDATE 添加发送逻辑: javax.jms.TextMessage tmsg = session.createTextMessage(); tmsg.setText(inp); sender.send(tmsg); 问题如果我从桌面读取这个xml它会说13个孩子,6个元素节点和7个文本节点。通用逻辑是: […]

如何在Java-XML中禁用/避免Ampersand-Escaping?

我想创建一个XML,其中空格被 替换  。 但Java-Transformer逃脱了Ampersand,因此输出为  这是我的示例代码: public class Test { public static void main(String[] args) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element element = document.createElement(“element”); element.setTextContent(“ ”); document.appendChild(element); ByteArrayOutputStream stream = new ByteArrayOutputStream(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); StreamResult streamResult = new StreamResult(stream); transformer.transform(new DOMSource(document), streamResult); System.out.println(stream.toString()); } } 这是我的示例代码的输出:   有什么想法来解决或避免这种情况? […]

Java GUI:文档对象模型

HTML有一个文档对象模型,然后Javascript可以操作/移动。 当我在Swing中创建GUI时 – 模型看起来非常不同(我不知道模型的名称),因为我正在创建布局管理器,并在其中粘贴对象。 我的问题:是否有某种方式以类似DOM的方式操纵Java GUis? [例如,我希望能够删除/添加节点,移动孩子等…] 谢谢!