精华内容
下载资源
问答
  • sed修改xml内容

    千次阅读 2018-10-07 14:22:38
    sed修改xml内容 sed -ri ‘s/([[:space:]]<context-param.keypass[[:space:]]=[[:space:]])("?[A-Za-z0-9]*"?)/\1666/’ web.xml

    sed修改xml内容


    sed -ri ‘s/([[:space:]]<context-param.keypass[[:space:]]=[[:space:]])("?[A-Za-z0-9]*"?)/\1666/’ web.xml
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 修改xml文件部分内容

    千次阅读 2018-08-14 14:36:20
    修改xml文件部分内容 #coding=utf-8 import xml.etree.ElementTree as ET import glob pathload=os.getcwd() print pathload path=glob.glob(pathload+'/Annotations/*.xml') print path for pathname in path: #...

    修改xml文件部分内容

    #coding=utf-8
    import xml.etree.ElementTree as ET
    import glob
    pathload=os.getcwd()
    print pathload
    path=glob.glob(pathload+'/Annotations/*.xml')
    print path
    for pathname in path:
    #读取待修改文件
        updateTree = ET.parse(pathname)
        root = updateTree.getroot()
        #修改sub1的name属性
        sub1 = root.find("path")
        print sub1.text
        sub1.text = pathload+'/JPEGImages/BloodImage_00073.jpg'
        print sub1.text
    #     updateTree.write(pathname)

     

    展开全文
  • php读取与修改xml文件

    2016-06-12 12:45:08
    兼容模式下修改xml文件数据后,xml文件内容的确改变了,浏览器显示的还是修改之前的数据,可是在极速模式下显示的是修改后的数据啊。后来加入了禁止缓存的代码,可是还是没有效果,是什么原因呢?希望高手不吝赐教,...
  • sed 修改xml键值对

    千次阅读 2018-04-10 14:38:03
    我们在工作中少不了与xml接触,有时需要修改xml中的属性值,如果xml文件比较冗长且需要修改的东西较多,那么手动修改就是件麻烦事。可以尝试使用sed命令来替我们做这件事。 test.xml的内容如下: &lt;val id=&...

         我们在工作中少不了与xml接触,有时需要修改xml中的属性值,如果xml文件比较冗长且需要修改的东西较多,那么手动修改就是件麻烦事。可以尝试使用sed命令来替我们做这件事。

       test.xml的内容如下:

       <val id="AA" name="c1"/>

       <val id="BB" name="d1"/>

       假设我们要把id为AA的记录的name修改为c2 , 使用如下的命令

       sed -i -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c2"/' test.xml


       把这条命令写入脚本:

      1 sed-E.sh

       #!/bin/sh
       echo "input file is $1"

       if [ $# -eq 1 ]; then
            sed -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c2"/' $1 
       else
            echo "parameter is error"

       fi

       cat $1


      2 sed-i-E.sh

      #!/bin/sh
       echo "input file is $1"

       if [ $# -eq 1 ]; then
            sed -i -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c2"/' $1 
       else
            echo "parameter is error"

       fi

       cat $1


      3 recover.sh

      #!/bin/sh
       echo "input file is $1"

       if [ $# -eq 1 ]; then
            sed -i -E 's/id="AA"\s+name="[^"]+"/id="AA" name="c1"/' $1 
       else
            echo "parameter is error"

       fi

       cat $1

    展开全文
  • RapidXml读取并修改XML文件

    千次阅读 2018-10-18 11:42:37
    RapidXml读取并修改XML文件RapidXml介绍RapidXml读取与修改xml文件 RapidXml介绍 RapidXml尝试创建最快的XML解析器,同时保留可用性,可移植性和合理的W3C兼容性。它是一个用现代C ++编写的原位解析器,解析速度...

    RapidXml读取并修改XML文件

    RapidXml介绍

         RapidXml尝试创建最快的XML解析器,同时保留可用性,可移植性和合理的W3C兼容性。它是一个用现代C ++编写的原位解析器,解析速度接近strlen在同一数据上执行的函数。它仅仅只由四个头文件组成,并不要单独进行配置编译,使用起来非常方便。
    在RapidXml的官网上,它发布了与其他xml解析库的速度对比,应该可以说RapidXml是目前最快的xml解析器。
    在这里插入图片描述
    RapidXml通过使用以下几种技术实现了它的速度:
    1,原位解析。构建DOM树时,RapidXml不会复制字符串数据,例如节点名称和值。相反,它存储指向源文本内部的指针。
    2,使用模板元编程技术。这允许它将大部分工作转移到编译时。通过模板的魔力,C ++编译器为您使用的任何解析器标志组合生成解析代码的单独副本。在每个副本中,所有可能的决定都在编译时进行,并且省略所有未使用的代码。
    3,广泛使用查找表进行解析。
    4,手动调优的C ++,在几个最流行的CPU上进行了分析。

    RapidXml读取与修改xml文件

         我们以下面这个xml为例,找到key值为"ReportIndex"的节点,并在这个节点前面插入一个新的节点"",同时将key值为"ReportIndex"的节点以及后面的节点的offset值都加上4。

    <hsbinmsg limit_size="5096" note="hsbinmsg msgtype info">
    	<head note="packet head">
    		<field key="msgtype" type="6" offset="0"/>
    		<field key="bodylength" type="6" offset="4"/>
    	</head>
    	<tail note="packet tail">
    		<field key="checksum" type="6" offset="-1"/>
    	</tail>
    	<msgtype id="202098" name="DesignationReport(202098)">
    		<dataset note="">
    			<field key="ReportIndex" type="7" offset="12" size="8"/>
    			<field key="app1id" type="17" offset="20" size="3"/>
    		</dataset>
    	</msgtype>
    </hsbinmsg>
    

         CXmlParse解析类的头文件如下:

    #pragma once
    #include "rapidxml.hpp"
    #include "rapidxml_utils.hpp"
    #include "rapidxml_print.hpp"
    #include <string>
    
    #define XML_NODE_NAME  "msgtype"
    #define XML_NODE_NAME2 "ReportIndex"
    
    #define OFFSET_SIZE		4
    
    class CXmlParse
    {
    public:
    	CXmlParse(const std::string &strPath);
    	~CXmlParse();
    
    private:
    	int LoadXml();
    
    	//找到key为name的属性
    	bool GetAttrByName(const char* name, rapidxml::xml_node<>* pNode, rapidxml::xml_attribute<> *&pAttr);
    
    	void UpdateAtributeValue(rapidxml::xml_document<> &doc, rapidxml::xml_attribute<>* &pAttr, int nOffset);
    
    	void MakeFileCopy(const std::string& strPath);
    
    private:
    	std::string m_strPath;
    	std::string m_strNewPath;
    };
    

         cpp实现文件:

    #include "XmlParse.h"
    #include <windows.h>
    #include <iostream>
    
    
    CXmlParse::CXmlParse(const std::string &strPath)
    {
    	m_strPath = strPath;
    	MakeFileCopy(m_strPath);
    	if (LoadXml())
    	{
    		std::cout << "XML处理成功" << std::endl;
    	}
    	else
    	{
    		std::cout << "XML处理失败" << std::endl;
    	}
    }
    
    CXmlParse::~CXmlParse()
    {
    
    }
    
    //加载xml
    int CXmlParse::LoadXml()
    {
    	if (m_strPath.empty())
    	{
    		return -1;
    	}
    
    	try
    	{
    		rapidxml::file<> file(m_strPath.c_str());
    		rapidxml::xml_document<> doc;
    		doc.parse<0>(file.data());
    
    		//根节点
    		rapidxml::xml_node<>* root = doc.first_node();
    		rapidxml::xml_node<>* pNode = root->first_node();
    
    		while (pNode)	//第二层节点head,msgtype
    		{
    			std::string strName = pNode->name();
    			if (strName.compare(XML_NODE_NAME) == 0)   //找到msgtype
    			{
    				rapidxml::xml_node<>* pNode2 = pNode->first_node();	//第三层节点dataset
    				if (pNode2)
    				{
    					rapidxml::xml_node<>* pNode3 = pNode2->first_node();	//第四层节点field,只找第一个
    					bool bFind = false;
    					rapidxml::xml_attribute<> *attr;
    					if (GetAttrByName("key", pNode3, attr))
    					{
    						if (strcmp(attr->value(), "ReportIndex") == 0)
    						{
    							bFind = true;
    						}
    					}
    
    					if (bFind)
    					{
    						//遍历第四层节点field节点, offset偏移量+4
    						while (pNode3)
    						{
    							rapidxml::xml_attribute<> *attrSize;
    							GetAttrByName("offset", pNode3, attrSize);
    							UpdateAtributeValue(doc, attrSize, OFFSET_SIZE);
    							pNode3 = pNode3->next_sibling();
    						}
    
    						//只要找到了一个key="ReportIndex"的field,那么就需要新插入一个node
    						rapidxml::xml_node<> *pNewNode = doc.allocate_node(rapidxml::node_element, "field");
    						if (pNewNode)
    						{
    							pNewNode->append_attribute(doc.allocate_attribute("key", "PartitionNo"));
    							pNewNode->append_attribute(doc.allocate_attribute("type", "6"));
    							pNewNode->append_attribute(doc.allocate_attribute("offset", "8"));
    							pNewNode->append_attribute(doc.allocate_attribute("size", "4"));
    							pNode2->prepend_node(pNewNode);
    						}
    					}
    				}
    			}
    
    			pNode = pNode->next_sibling();
    		}
    
    		std::ofstream out(m_strNewPath);
    		out << doc;
    		out.close();	
    
    		return 1;
    	}
    	catch (...)
    	{
    		std::cout << "XML解析出现异常" << std::endl;
    		return -1;
    	}
    }
    
    //获取到节点中key为name的属性
    bool CXmlParse::GetAttrByName(const char* name, rapidxml::xml_node<>* pNode, rapidxml::xml_attribute<> *&pAttr)
    {
    	if (pNode == NULL)
    		return false;
    
    	for (rapidxml::xml_attribute<> *attr = pNode->first_attribute(); attr; attr = attr->next_attribute())
    	{
    		if (strcmp(attr->name(), name) == 0)
    		{
    			pAttr = attr;
    			return true;
    		}
    	}
    
    	return true;
    }
    
    //更新属性的值
    void CXmlParse::UpdateAtributeValue(rapidxml::xml_document<> &doc, rapidxml::xml_attribute<>* &pAttr, int nOffset)
    {
    	if (NULL == pAttr)
    		return;
    	const char* oldValue = pAttr->value();
    	int nValue = atoi(oldValue);
    	nValue += nOffset;
    	char str[12];
    	memset(str, 0, 12);
    	_itoa_s(nValue, str, 10);
    	pAttr->value(doc.allocate_string(str), strlen(str));
    }
    
    //根据原路径得到新路径(原路径名+“2”)
    void CXmlParse::MakeFileCopy(const std::string& strPath)
    {
    	std::string strNewPath = strPath;
    	int nPos = strNewPath.find_last_of(".");
    	if (nPos != std::string::npos)
    	{
    		std::string strTemp = strNewPath.substr(nPos + 1);
    		strNewPath = strNewPath.substr(0, nPos);
    		strNewPath += "2.";
    		strNewPath += strTemp;
    		m_strNewPath = strNewPath;
    	}
    }
    
    

         RapidXml遍历节点跟TinyXml遍历节点的方式一样,都是先获取根节点,然后获取到根节点下方的first_node(),然后通过next_sibling()不停地指向下一个兄弟节点,同时兄弟节点也可以深度去遍历。获取节点的各个属性值也是一样的使用方式。
         本程序为了和原xml文件作对比,就创建了新的文件,如果想在原文件上做修改,直接将std::ofstream out(m_strNewPath);中的m_strNewPath替换为m_strPath即可。
    类封装好后,调用也非常方便。

    CXmlParse parse(strPath);
    

         附上完整例子代码:Demo

    展开全文
  • JDOM提供了非常灵活的...前面我们学习了如何使用JDOM解析XML文件,本节介绍如何使用JDOM修改XML文件内容。 在这个教程中,我们准备对下面的XML文件进行修改: employees.xml<?xml version="1.0" encoding="UTF-8"?> ...
  • 修改xml文件中节点的值

    千次阅读 2017-01-18 21:37:37
    修改xml文件中节点的值在深度学习中的样本,xml文件中记录着图片的各种信息。现在图片更改了,所以需要对应地修改xml中的数据。①读取图片的尺寸信息②修改对应的xml,将真实尺寸修改要修改的xml<?xml version='1.0'...
  • DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素、删除元素、修改元素值、修改元素属性等操作。 我们的XML文件,内容如下: employee.xml<?xml version="1.0" encoding="UTF-8" standalone="no"?> ...
  • 修改XML内容(增删改)

    千次阅读 2019-03-10 16:13:44
    如何修改XML文档内容? xml文档增删改的实现: package gz.itcast.a_dom4j_write; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Attribute; import org.dom4j.Document; import ...
  • C#读取与修改XML文档

    千次阅读 2017-10-07 08:33:19
    在项目开发中,对XML文档的操作是很常用的,这里,简单的说明读取与修改XML文档XML文档的格式<?xml version="1.0" encoding="utf-8"?> 谷歌 <weburl>...
  • 使用qt5操作xml文件,删除xml文件中的节点和修改xml文件中节点的数据值。 那位大神知道,如果有代码就更好了。 谢谢
  • Python 修改xml文件内容——批量更改Labelimg标签文件路文件夹名目的原始文件与想要的结果对比图代码实现xml.etree.ElementTree 目的 对一个文件夹中全部Labelimg标记的xml文件中的文件路径以及文件夹名,使用python...
  • inno setup修改xml节点

    千次阅读 2016-03-02 19:36:19
    1、在做客户端多语言的安装包时,配置写在了xml文件中(而不是ini文件),就需要在安装的最后修改xml文件的多语言节点,方法为: [Code] // 获取当前语言 function MyLangName(): String;  begin  Result :...
  • 使用DOM方式修改XML文件内容

    千次阅读 2017-05-17 15:25:52
    DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素、删除元素、修改元素值、修改元素属性等操作。  我们的XML文件,内容如下:  employee.xml Pankaj 29 Java Developer Male Lisa 35...
  • tinyxml修改XML内容

    千次阅读 2018-01-29 11:47:43
    #include "tinyxml.h" #include "tinystr.h" #include #include #include #include #include #include #include #include #include #pragma comment(lib,"tinyxml.lib") using namespace std; class path
  • 根据上一篇文章利用java读取...此处新添加关于修改xml数据的代码 dtd与xml文件不变,只是变了java文件。 把读取document的过程封装成了方法test1,而修改的封装成了test2 过程如下: package xml; import java....
  • 修改xml标签

    千次阅读 2018-07-27 15:59:07
    参考:... xml 解析与生成:https://www.cnblogs.com/jonyq/p/5929073.html import xml.dom.minidom dom=xml.dom.minidom.parse('/media/d_2/everyday/0727/...
  • installshield 修改xml文件

    千次阅读 2012-08-17 14:12:24
    首先说明,网上有相应的文章,不过我自己亲自做了一遍,现在给自己总结一下,记录一下,这也是我开始写这些博文的意义,...安装盘要做到可以获取到互用在界面填的数据库信息,然后根据信息修改xml文件相应的节点信息。
  • 2】下面是读取和修改xml文档的内容,并且保存xml修改的代码 #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) {
  • Installshield修改XML文件

    千次阅读 2009-11-30 15:06:00
    使用XML change修改xml文件的基本步骤(仅限于Installscript MSI项目以及Basic MSI项目)1.导入XML文件。在System Configuration试图中选择XML File Changes,右键XMLFile。选择Import,可以启动Import XMLwizard。...
  • android修改xml文档—DOM方式

    千次阅读 2016-03-11 13:52:46
    需求说明: 在android中,使用xml配置文件替代原来的SharedPreferences,并且将文件放置到sd卡下,以实现软件的“绿色化”...关于修改xml文件是一无所知的。 处理思路: 拿到要修改的节点名,如果存在则修改,如果不
  • Python修改xml文件内容

    千次阅读 2019-08-26 16:50:43
    在使用xml文件的过程中,发现其中filename的名字有问题,所以找了一个代码修改了这个文件。 参考:https://blog.csdn.net/qq_21997625/article/details/86558168 import xml.etree.ElementTree as ET import os ...
  • 用java读取修改xml文件的代码实现

    热门讨论 2008-10-06 14:35:34
    通过不同的库方法读取修改xml文件。通过java实现。代码易懂
  • 修改xml的节点数据内容

    千次阅读 2013-03-12 16:30:41
    这里就涉及到了修改xml的内容,开始想着是把xml重新封装一遍,但是这样会对效率、内存产生很大的影响,后来看了看xml的api,有个doc.asXML的方法,可以实现修改了xml 内容,然后改变xml的内容。具体代码如下 ...
  • winform程序,自定义一个xml配置文件,想要实现不需要重启程序的前提下修改xml配置文件即可生效
  • python批量修改xml文件的标签属性值

    千次阅读 2020-01-08 18:25:03
    一、使用背景 之前在ubuntu下做过yolov3目标检测的项目(Pascal VOC数据集),...因此需要用python批量修改xml中 filename和path两个属性值 所以…找轮子发现了-> https://blog.csdn.net/qq_41983165/article...
  • java动态修改xml文件(增删改查)

    千次阅读 2017-06-15 16:46:20
    java动态修改xml文件,实现对xml文件的增删改查操作
  • Android 通过DOM解析并修改xml文件

    千次阅读 2016-11-21 13:59:20
    Android 通过DOM解析并修改xml文件 private void modifyXml(String path) { try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDo
  • 请问大神:如何修改xml文件中的数值为其一半,即 25,30,35。方法不限,最好有具体可执行的代码。 #别的代码 < void property="exp"> < int>50</int> < /void> #别的代码 < void property="exp"> ...
  • 【深度学习】修改xml中文件夹路径

    千次阅读 2018-12-11 19:19:13
    在深度学习的实践中,我们通常都会下载公开数据集,标注数据通常都存为xml文件,里面的path通常都是图片在本机中的路径,如果我们想直接用...##修改xml文件中的&amp;amp;amp;amp;lt;path&amp;amp;amp;amp;g...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,652
精华内容 27,460
关键字:

修改xml