Tag: dom

Java(JAXP)XML解析DocumentBuilder的差异

两者之间有什么区别吗? DocumentBuilder.parse(InputStream)和 DocumentBuilder.parse(InputSource) ? 我只能发现,对于第一种情况,解析器检测流中的编码,因此它更安全,而后者我不确定是否需要设置编码。 我应该知道的任何其他要点(例如表演)?

从Java DOM中的XML获取元素名称

我想获取元素名称并在XML中打印数据,但不确定如何在特定元素下获取数据。 这是XML示例和我的代码。 The Godfather 1972 Crime Drama Don Vito Corleone Marilyn Pauline Novak 1933-02-13 Chicago, Illinois, USA try { File fXmlFile = new File(filename); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(fXmlFile); NodeList nodes = doc.getElementsByTagName(“movie”); System.out.println(“nodes length”+ nodes.getLength()); for (int i = 0; i < nodes.getLength(); i++){ Element element = […]

Java / DOM:获取节点的XML内容

我正在使用W3C DOM解析Java中的XML文件。 我陷入了一个特定的问题,我无法弄清楚如何获得一个节点的整个内部XML。 该节点看起来像这样: this is a test 我必须使用什么function来实现: “this is a test”

将Document对象转换为Byte

我是这样的init对象: DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); 之后,我通过将数据插入doc对象来构建XML文件。 最后,我将内容写入计算机上的文件。 我的问题是如何将doc的内容写入byte[] ?* 这就是我将内容写入XML文件的方式: TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File(“changeOut.xml”)); // Output to console for testing // StreamResult result = new StreamResult(System.out); transformer.transform(source, result);

如何使用Javascript动态嵌入Java applet?

我希望能够使用按下按钮时调用的Javascript函数动态地将Java小程序插入到网页中。 (在页面加载时加载小程序会减慢速度,冻结浏览器等等…)我正在使用以下代码,它在FF中无缝运行,但在IE8,Safari 4和Chrome中没有错误消息就失败了。 有没有人知道为什么这不能按预期工作,以及如何以适用于所有浏览器的方式动态插入applet? 我已尝试使用其他地方建议的document.write() ,但在页面加载后调用该结果会导致页面被删除,因此这对我来说不是一个选项。 function createPlayer(parentElem) { // The abc variable is declared and set here player = document.createElement(‘object’); player.setAttribute(“classid”, “java:TunePlayer.class”); player.setAttribute(“archive”, “TunePlayer.class,PlayerListener.class,abc4j.jar”); player.setAttribute(“codeType”, “application/x-java-applet”); player.id = “tuneplayer”; player.setAttribute(“width”, 1); player.setAttribute(“height”, 1); param = document.createElement(‘param’); param.name = “abc”; param.value = abc; player.appendChild(param); param = document.createElement(‘param’); param.name = “mayscript”; param.value = true; player.appendChild(param); parentElem.appendChild(player); […]

Java + DOM:如何设置(已创建)Document的基本命名空间?

我正在处理一个已经创建的 Document对象。 我必须能够将它的基本命名空间(属性名称“xmlns”)设置为特定值。 我的输入是DOM,类似于: …some content… 我需要的是DOM,它类似于: …some content… 而已。 容易,不是吗? 错误! 没有DOM! 我尝试过以下方法: 1)使用doc.getDocumentElement()。setAttribute(“xmlns”,“myNamespace”) 我得到一个带有空xmlns的文档(它适用于任何其他属性名称!) … 2)使用renameNode(…) 首先克隆文档: Document input = /*that external Document whose namespace I want to alter*/; DocumentBuilderFactory BUILDER_FACTORY_NS = DocumentBuilderFactory.newInstance(); BUILDER_FACTORY_NS.setNamespaceAware(true); Document output = BUILDER_NS.newDocument(); output.appendChild(output.importNode(input.getDocumentElement(), true)); 我真的很想念document.clone(),但也许只是我。 现在重命名根节点 : output.renameNode(output.getDocumentElement(),”myNamespace”, output.getDocumentElement().getTagName()); 现在不是那么直截了当吗? ;) 我现在得到的是: 所以(正如我们所有人所期望的那样,对吧?) ,这只重命名根节点的命名空间。 诅咒你,DOM! 有没有办法以递归方式执行此操作(无需编写自己的递归方法)? 请帮忙 […]

使用NodeList和DocumentBuilder解析Xml

使用dom和DocumentBuilder解析xml时遇到一些麻烦。 我能够让它工作,但我想我对所有子节点等有点困惑。 这是我正在使用的XML: Heparin effect Acquired hemophilia Acquired vWD DIC Dysfibrinogenemia FI deficiency FII deficiency FII/IIa inhibitors FIX deficiency FIX inhibitors FV deficiency FV inhibitors FVIII deficiency FX deficiency FX inhibitors FXI deficiency FXI inhibitors FXII deficiency FXII inhibitors Heparin effect Liver disease effect Lupus anticoagulant Monoclonal gammopathy Vitamin K deficiency vWD type 1 vWD […]

将XML节点中的子节点拆分为自己的XML文件

我有一个XML文件(在左侧),我想创建多个文件(在右侧): file1: file2: 我试图从原始XML文件中取出第一个子节点并将其添加到新的节点,但我一直在更换节点时遇到错误。 我想做类似以下的事情 DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbfac.newDocumentBuilder(); Document newDocument; Node firstChild = document.getFirstChild(); NodeList childNodes = firstChild.getChildNodes(); Element parentNode; for (int i = 1; i < childNodes.getLength(); i++ ) { newDocument = docBuilder.newDocument(); parentNode = newDocument.createElement("ParentNode"); newDocument.appendChild(parentNode); newDocument.getFirstChild().appendChild(childNodes.item(i)); } 但是我收到了一个错误 org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different […]

使用Java解析HTML数据(DOM解析)

我已经研究了一段时间,并没有找到任何与Stack Overflow相关的东西。 我正在使用一个旨在捕获HTML代码片段的解析器。 基于代码(下面进一步说明),文件的大小呈指数级增长并且正在捕获我需要的字段(li),但也是非常重复的,因为它一遍又一遍地捕获相同的数据。 这是我正在阅读的文件(完整文件实际上有超过100行但这里只包括3行): Name: J0719 Description: Hop Counts: 2State: 3 Name: J0716 Description: Hop Counts: 3State: 2 Name: J0718 Description: Hop Counts: 1State: 5 Name: J0726 Description: Hop Counts: 8State: 4 我的完整代码在这里: package ReadXMLFile_part2; import java.io.*; import org.jsoup.Jsoup; import org.jsoup.select.Elements; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import java.util.Enumeration; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.text.MutableAttributeSet; import […]

将新XML节点保存到文件

我正在尝试将包含XML nodeList节点保存为新文件,这里是获取新XML文档并拆分为较小XML的节点列表: public void split(Document inDocument) throws ParserConfigurationException, SAXException, IOException { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); SaveXML savePerJob = new SaveXML(); // Load the input XML document, parse it and return an instance of the // Document class. Document document = inDocument; //all elements //jobs NodeList nodes = document.getDocumentElement().getChildNodes(); NodeList jobs = […]