Tag: dom

JAXB:无法解组JAXBElement ,而是获取ElementNSImpl

与JAXB相关:如何实现与JAXB兼容的变体包装类? ,我尝试使用JAXBElement来表示“变体”或“任何类型”。 编组运行正常,但在Unmarshalling期间, JAXB尝试将ElementNSImpl分配给JAXBElement字段。 测试代码 (复制粘贴+ +运行) import static java.lang.System.*; import java.io.*; import java.util.*; import javax.xml.bind.*; import javax.xml.bind.annotation.*; import javax.xml.namespace.*; import org.junit.*; public class _JaxbElementProblem { @XmlRootElement @XmlType @XmlAccessorType(XmlAccessType.NONE) static class MyObject { public static final QName VARIANT_NAME = new QName(“QQQ”); @XmlAnyElement(lax = true) private JAXBElement single = null; @XmlElementWrapper(name = “elements”) @XmlAnyElement(lax = true) […]

哪个Java DOM Wrapper最好或最受欢迎?

我过去使用过jdom,并简要介绍了XOM和DOM4j 。 每个似乎都提供了基本相同的东西,因为它们各自提供了(非常钝的)标准W3C DOM API的简化包装。 我知道JDOM在某一方面经过了一些努力来开发JSR和标准化过程,但据我所知,努力从来没有去过任何地方。 在过去的几年中,所有项目似乎都处于停滞状态,几乎没有新的发展。 关于哪个是最好的,是否有共识? 每个的优点和缺点是什么?

如何使用Java DOM克隆整个文档?

我正在寻找一种可靠的,与实现无关的方法来克隆整个文档。 Javadocs特别指出,在Document上调用cloneNode是特定于实现的。 我尝试通过无操作的Transformer传递Document,但生成的Node没有所有者Document。 我可以创建一个新文档并从旧文档导入节点,但我担心可能会丢失一些文档元数据。 将Document写入字符串并将其解析回来也是如此。 有任何想法吗? 顺便说一句,由于我无法控制的原因,我陷入了Java 1.4.2。

如何在XML中查找和替换属性值

我正在Java中构建一个“XML扫描程序”,它找到以“!Here:”开头的属性值。 属性值包含稍后要替换的指令。 例如,我有这个xml文件填充像记录 我怎样才能找到并替换属性值,只知道它以”!Here:”开头?

克隆dom.Document对象

我的目的是将xml文件读入Dom对象,编辑dom对象,这涉及删除一些节点。 完成此操作后,我希望将Dom恢复到其原始状态,而不实际解析XML文件。 无论如何我可以克隆我第一次解析xml文件后获得的dom对象。 这个想法是为了避免一直读取和解析xml,只需保留原始dom树的副本。

在java,dom,xml解析中设置新节点值时出现问题

我有以下代码: DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder(); StringReader reader = new StringReader(s); InputSource inputSource = new InputSource(reader); Document doc_ = dBuilder.parse(inputSource); 然后我想使用以下代码在根节点下的该节点中创建一个新元素: Node node = doc_.createElement(“New_Node”); node.setNodeValue(“New_Node_value”); doc_.getDocumentElement().appendChild(node); 问题是节点被创建并附加但是没有设置值。 我不知道当我看到我的xml时,如果它以某种方式隐藏,我是否只是看不到值但我不认为是这种情况,因为我试图在创建节点调用后获取节点值它返回null 。 我是xml和dom的新手,我不知道新节点的值存储在何处。 它是一个属性吗? 还是它在这里增值: New_Node_value 任何帮助将不胜感激, 谢谢,乔希

仅创建XML打印到一行

我创建了一些将地图写入XML的代码。 它似乎工作但文件打印没有新行。 所以在任何XML编辑器中它只在一行上。 如何为每个孩子打印到新行? DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.newDocument(); Element vdata = doc.createElement(“vouchdata”); doc.appendChild(vdata); for (Entry entry : vouchMap.entrySet()) { Element udata = doc.createElement(“vouch”); Attr vouchee = doc.createAttribute(“name”); vouchee.setValue(entry.getKey()); udata.setAttributeNode(vouchee); Attr voucher = doc.createAttribute(“vouchedBy”); voucher.setValue(entry.getValue()); udata.setAttributeNode(voucher); vdata.appendChild(udata); } // write the content into xml file TransformerFactory transformerFactory = […]

如何向XML DOM对象添加名称空间前缀?

我正在尝试使用特定的命名空间构建XML文档。 我想要生成的最终文档看起来像这样: token token token 这是我到目前为止所拥有的。 Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); Element requestElement = document.createElementNS(“http://www.myschema.com”, “documentObject”); document.appendChild(requestElement); Element sender = document.createElement(“sender”); requestElement.appendChild(sender); Text senderText = document.createTextNode(“Xmlsender”); sender.appendChild(senderText); Element receiver = document.createElement(“receiver”); requestElement.appendChild(receiver); Text receiverText = document.createTextNode(“Xmlreceiver”); receiver.appendChild(receiverText); Element payload = document.createElement(“payload”); requestElement.appendChild(payload); Text payloadText = document.createTextNode(“Xmlpayload”); payload.appendChild(payloadText); StringWriter sw = new StringWriter(); StreamResult result = new […]

如何使用Selenium或Protractor获取HTML中嵌套元素的文本以实现自动化?

我跟下面有HTML代码。 我需要控制日志或仅打印desc类文本 – “打印此”而不是量角器或selenium中的spell类文本。 Print this And not this 我试着getText()但是它用下面的代码打印完整的语句 – 打印此而不是这个 在使用Javascript的Protractor中: element(by.css(‘.desc’)).getText().then(function(text){ console.log(text); }); 在Selenium中使用Java: System.out.println(driver.findElement(by.xpath(‘//*[@class=”.desc”]’)).getText()); 如何仅打印文本的第一部分(即“打印此”)? 任何建议或帮助将不胜感激? 谢谢。

为什么我将额外的文本节点作为根节点的子节点?

我想打印根节点的子元素。 这是我的XML文件。 yong mook kim mkyong 100000 low yin fong fong fong 200000 根据我的理解,Root节点是’公司’,其子节点必须是’staff’和’staff’(因为有’staff’节点2次)。 但是当我试图让他们通过我的java代码时,我得到了5个子节点。 3个额外的文本节点将从哪里来? Java代码: package com.training.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class ReadingXML { public static void main(String[] args) { try { File file=new File(“D:\\TestFile.xml”); DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder=dbFactory.newDocumentBuilder(); Document document=dBuilder.parse(file); document.getDocumentElement().normalize(); System.out.println(“root element: […]