/**
* 添加图片之后,根据上传的类别,修改临时XML文件
*
* @param catalog
* ,例如:01
* @param imgSrc
* ,例如:book\0000000\040\a.jpg
* @param xmlPath
* ,例如:D:\TEMP.XML
*/
public static void addNodeToTempXML(String catalog, String imgSrc, String reportName,String xmlPath) {
Document document = load(xmlPath);
Element root = document.getDocumentElement();
if (root.hasChildNodes()) {
NodeList ids = root.getChildNodes();
for (int i = 0; i < ids.getLength(); i++) {
Node id = ids.item(i);
if (id.getNodeType() == Node.ELEMENT_NODE) {
String name = id.getAttributes().getNamedItem("name").getNodeValue();
if (name.equals(catalog)) {
Element page_mode = document.createElement("page");
page_mode.setAttribute("reportName", reportName);
Text textseg = document.createTextNode(imgSrc);
page_mode.appendChild(textseg);
id.appendChild(page_mode);
break;
}
}
}
}
doc2XmlFile(document, xmlPath);
}
/**
* 删除图片之后,根据上传的类别,修改临时XML文件
*
* @param manual_catalog
* @param imgSrc
* ,例如:book\0000000\040\a.jpg
* @param xmlPath
* ,例如D:\TEMP.XML
*/
public static void deleteNodeFromTempXML(String manual_catalog, String imgSrc, String xmlPath) {
Document document = load(xmlPath);
Node root = document.getDocumentElement();
if (root.hasChildNodes()) {
NodeList catalogs = root.getChildNodes();
for (int i = 0; i < catalogs.getLength(); i++) {
Node catalog = catalogs.item(i);
if (catalog.getNodeType() == Node.ELEMENT_NODE) {
String name = catalog.getAttributes().getNamedItem("name").getNodeValue();
if (name.equals(manual_catalog) && catalog.hasChildNodes()) {
NodeList pages = catalog.getChildNodes();
for (int j = 0; j < pages.getLength(); j++) {
Node page = pages.item(j);
if (page.getNodeType() == Node.ELEMENT_NODE) {
String src = page.getFirstChild().getNodeValue();
if (imgSrc.equals(src)) {
catalog.removeChild(page);
break;
}
}
}
}
}
}
}
doc2XmlFile(document, xmlPath);
}
public static boolean doc2XmlFile(Document document, String filename) {
boolean flag = true;
try {
TransformerFactory tf=TransformerFactory.newInstance();
Transformer transformer=tf.newTransformer();
DOMSource source=new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312");
transformer.setOutputProperty(OutputKeys.INDENT,"yes");
PrintWriter pw=new PrintWriter(new FileOutputStream(filename));
StreamResult result=new StreamResult(pw);
transformer.transform(source,result);
} catch (Exception ex) {
flag = false;
ex.printStackTrace();
}
return flag;
}
public static Document load(String filename) {
Document document = null;
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(filename));
document.normalize();
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}
分享到:
相关推荐
功能:删除当前节点的所有子节点,当前节点不删除 参数:无 返回:true删除成功 false删除失败 **************************************/ bool DeleteAllSon(); /*************************************** ...
"可添加删除修改xml节点"则意味着我们需要具备对DOM树进行操作的能力。添加节点涉及创建新的DOM节点,并将其插入到适当的位置;删除节点则需要找到目标节点并从树中移除;修改节点则包括改变节点的属性或文本内容。...
在处理XML数据时,QT提供了一套完善的API,使得开发者能够方便地对XML文档进行创建、读取、修改和删除等操作。本教程将围绕"QT对XML的增删查改读取,节点自定义,键值自定义"这一主题,详细介绍如何利用QT库来处理...
本篇将详细讲解如何使用C#进行XML的操作,包括添加节点、修改节点、删除节点以及XML与GridView之间的交互。 首先,我们关注的是XMLOperator.cs这个文件,它是一个专门处理XML操作的类。此类通常会包含一系列的方法...
C#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、...
Delphi7向常用的XML文件中添加内容,按照XML的节点规则依次写入内容,自定义各个节点及节点内容,具体的操作代码如下示: var iXml: IDOMDocument; iRoot, iNode, iNode2, iChild, iAttribute: IDOMNode; ...
你可以使用QDomDocument的parse()方法加载XML字符串或文件,将其转换为内存中的对象模型。例如: ```cpp QFile file("example.xml"); file.open(QIODevice::ReadOnly | QIODevice::Text); QDomDocument doc; if (!...
在这个过程中,理解XPath(XML路径语言)也可以帮助更高效地定位XML节点。XPath是用于在XML文档中查找信息的语言,尽管在C#中不是必需的,但它提供了一种强大而灵活的方式来定位节点。 总之,C#通过`XDocument`类...
#### 二、读取XML节点数据 **1. 加载XML文档** 要开始读取XML文件,首先需要加载文件到`XmlDocument`对象中: ```csharp string filename = Server.MapPath("/") + @"WebApplication1\web.config"; XmlDocument ...
在这个例子中,我们首先加载了一个名为"example.xml"的XML文件,然后创建了一个新的元素节点,并为其添加了一个属性。接着,我们将这个新节点添加到了XML文档的根节点之下。最后,我们保存了修改后的XML文件。 对于...
本文将深入探讨如何在.NET中对XML节点进行插入、删除和修改的操作,这将帮助开发者更好地理解和掌握XML文档的动态管理。 ### 一、XML节点的插入 在.NET中,我们可以使用`System.Xml`命名空间下的类来实现XML节点的...
方便对xml中任意节(多个同名节点)点属性进行获取、设置。 /// /// 设置指定节点的属性 /// /// <param name="xmlContent">xml结构 /// 父节点 /// 父节点所处同名节点的位置 为0表明只有一个该节点 /// ...
修改XML节点和属性: - 修改节点值:对于 `XmlDocument`,可以通过 `InnerText` 属性;对于 `XDocument`,使用 `Value` 属性。 - 修改属性值:对于 `XmlDocument`,通过 `SetAttributeValue()` 方法;对于 `...
在删除XML节点时,我们的目标是彻底移除它,不留下任何痕迹。 问题的关键在于,许多XML解析器和库在处理节点删除时,可能不会立即从DOM(Document Object Model)树中物理地移除它们。DOM是一种将XML文档转换为内存...
在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...
4. **XmlNodeList**: 用来存储一系列XmlNode对象,通常用于遍历XML节点。 要**增加节点**,我们先创建一个新的XmlElement对象,然后通过`AppendChild`或`InsertAfter`等方法将其添加到父节点中。例如,向上面的XML...
3. **添加XML节点**: 要向XML对象添加新节点,可以直接调用XML对象的appendChild方法。例如,添加新的item节点: ```actionscript var newItem:XML = <item id="3">Item 3; xmlData.appendChild(newItem); ...
在本文中,我们将深入探讨如何使用C# Winform来操作XML文件,包括显示、添加、删除和修改XML数据。XML(可扩展标记语言)是一种结构化数据存储格式,广泛用于软件开发中。C#提供了丰富的类库,如System.Xml命名空间...
在给定的代码片段中,可以看到一系列关于XML节点操作的方法,包括查询所有节点、删除子节点、添加子节点以及更新子节点。下面分别对这些方法进行详细解析。 ##### 1. 查询所有节点(`selectAllNodes()`) - **创建...
### 删除XML节点 删除节点时,我们需要先找到要删除的节点,然后调用`RemoveChild`方法。例如: ```csharp // 找到要删除的节点 XmlNode nodeToDelete = xmlDoc.SelectSingleNode("//NodeToBeDeleted"); if ...