导航:首页 > 版本升级 > c修改xml文件内容

c修改xml文件内容

发布时间:2023-01-10 02:01:00

Ⅰ python 怎么修改xml文件内容

类似于:
#!/usr/bin/evnpython
#coding:utf-8

try:
importxml.etree.cElementTreeasET
exceptImportError:
importxml.etree.ElementTreeasET
importsys

try:
tree=ET.parse("country.xml")#打开xml文档
#root=ET.fromstring(country_string)#从字符串传递xml
root=tree.getroot()#获得root节点
exceptException,e:
print"Error:cannotparsefile:country.xml."
sys.exit(1)
printroot.tag,"---",root.attrib
forchildinroot:
printchild.tag,"---",child.attrib

print"*"*10
printroot[0][1].text#通过下标访问
printroot[0].tag,root[0].text
print"*"*10

forcountryinroot.findall('country'):#找到root节点下的所有country节点
rank=country.find('rank').text#子节点下节点rank的值
name=country.get('name')#子节点下属性name的值
printname,rank

#修改xml文件
forcountryinroot.findall('country'):
rank=int(country.find('rank').text)
ifrank>50:
root.remove(country)

tree.write('output.xml')

给你推荐一篇文章看看吧:

http://python.jobbole.com/82775/

Ⅱ C# 读取修改xml文件

读取XML:
XmlDocument doc= new XmlDocument();
doc.Load("c:\\aa.xml");
string path="ntsc/time/day";
XmlNode node= doc.SelectSingleNode(path);
string text=node.InnerText;//这个就是你的要的值了.

修改:
XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("name")=="ApplePrice")
{
xe.SetAttribute("value","32");//32为修改后的值
break;
}
}

xmlDoc.Save("bookstore.xml");//保存。

Ⅲ 如何用shell脚本修改XML文件

通过shell脚本修改xml文件中的某行记录

跟之前一样,假设有如下的xml文件:

web.xml中有如下内容:

[html] view plain

cookieName

sessionName

需求:现在需要利用shell脚本替换掉cookieName对应的value值,

利用shell实现方式如下:

shell脚本部分:

declare -i Dline

getline()

{

grep -n "cookieName" ${DOMAIN_HOME}/portal/ROOT/WEB-INF/web.xml | head -1 |
cut -d ":" -f 1;

}

getlinenum()

{

awk "BEGIN{a=`getline`;b="1";c=(a+b);print c}";

}

Dline=`getlinenum`;

echo "line is ${Dline}";

sed -i "${Dline},${Dline}s/.*/ \替换的value值\<\/param-value\>/g"
path/web.xml

说明:这个跟之前的替换属性文件的区别在于,这个是精确定位到行的,然后替换正行code。

这个xml和properties 中都是默认需要替换的内容是唯一的。

Ⅳ 如何修改后缀为XML格式的文件(正确给200分)

这个你可以将它用记事本打开,再将修改<OptionRef Id="AlwaysInstalled"/>为 <OptionRef Id="NeverInstalled"/>
修改下一段中AlwaysInstalled为NeverInstalled保存关闭
但是可能你会遇到问题 他可能会提醒需要权限,再后来可能出现路径不对不能修改,(这是我遇到的问题)
如果是这种问题,我建议,你最好先将它剪切到桌面,在打开(记得是记事本打开),再修改,后再复制到C:\ProgramFiles\CommonFiles\MicrosoftShared\OFFICE12\OfficeSetup Controller\Proof.en文件下代替原来的哪个,不要存在两个哦!我像这样就可以了。
但是我可是遇到问题了,因为网上的这种结果可能不适合你,当你的office07到了两个月试用期后,照样不能正常使用,我建议最好,重新安装一个office。
好了,祝你好运!

Ⅳ 怎么用C语言写一个简单的XML文件

用VC吧,下面有一个例子,你参照下:

voidCreateXml()
{
CoInitialize(NULL);
//创建文档
MSXML2::IXMLDOMDocument2PtrpXMLDoc=NULL;
//创建DOMDocument对象
HRESULThr=pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));
if(!SUCCEEDED(hr))
{
return;
}
//
MSXML2::=NULL;
pXMLProc=pXMLDoc->createProcessingInstruction("xml","version='1.0'encoding='UTF-8'");

_variant_tvNullVal;
vNullVal.vt=VT_NULL;
pXMLDoc->insertBefore(pXMLProc,vNullVal);
//创建根结点
_variant_tvarNodeType((short)MSXML2::NODE_ELEMENT);
MSXML2::IXMLDOMNodePtrpXMLNodeRoot=NULL;
pXMLNodeRoot=pXMLDoc->createNode(varNodeType,_T("Cases"),_T(""));
//添加根结点
pXMLDoc->appendChild(pXMLNodeRoot);
//创建并添加下级结点
MSXML2::IXMLDOMNodePtrpXMLNodeNode=NULL;
pXMLNodeNode=pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case")));
//创建下级元素结点
MSXML2::IXMLDOMElementPtrpXMLEle=NULL;
pXMLEle=pXMLDoc->createElement(_T("CopyFile"));
//创建并设置下级结点属性
MSXML2::IXMLDOMAttributePtrpXMLAttr=NULL;
pXMLAttr=pXMLDoc->createAttribute(_T("src"));
pXMLAttr->nodeTypedValue="C:\test.txt";
pXMLEle->attributes->setNamedItem(pXMLAttr);
pXMLAttr=pXMLDoc->createAttribute(_T("dest"));
pXMLAttr->nodeTypedValue="D:\Test.txt";
pXMLEle->attributes->setNamedItem(pXMLAttr);
//添加元素结点
pXMLNodeNode->appendChild(pXMLEle);
MSXML2::IXMLDOMElementPtrpXMLEle1=NULL;
pXMLEle1=pXMLDoc->createElement(_T("DelFile"));
pXMLEle1->appendChild(pXMLDoc->createTextNode("C:\test.txt"));
//添加元素结点
pXMLNodeNode->appendChild(pXMLEle1);

//保存文档
pXMLDoc->save(_T("d:\Test.xml"));
}

效果如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<Cases>
<Case>
<CopyFilesrc="C: est.txt"dest="D:Test.txt"/>
<DelFile>C: est.txt</DelFile>
</Case>
</Cases>

为了能够让MFC认识MSXML2,我们需要引入相应的dll,代码如下;
#import "msxml4.dll"

Ⅵ C++发送某个指令后更换读写的xml文件

我们先创建一个xml文件(a.xml),然后解析xml,将解析到的内容输入到另一个xml文件中去(b.xml)相当于拷贝了a.xml
a.Xml:
<HTML>
<Header name="a" type="x" size="4" odd="0">
<Field name="EMP-0" type="UINT32" ratio="1" link=""/>
<Field name="EMP-1" type="UINT32" ratio="1" link=""/>
<Field name="EMP-2" type="UINT32" ratio="1" link=""/>
</Header>
<Body name="b" type="x" size="4" odd="0">
<Field name="EMP-0" type="UINT32" ratio="1" link=""/>
<Field name="EMP-1" type="UINT32" ratio="1" link=""/>
<Field name="EMP-2" type="UINT32" ratio="1" link=""/>
<Field name="EMP-3" type="UINT32" ratio="1" link=""/>
</Body>
</HTML>
程序代码:
#include"tinystr.h"
#include"tinyxml.h"
#include<iostream>
using namespace std;
#define SUCCESS 1
#define FAILED 0
int loadXml();
int main()
{
if(loadXml())
{getchar();return 1;}
getchar();
return 0;

}
int loadXml()
{
//创建两个个xml文档对象,一个为读取,一个为输出
TiXmlDocument *inXml = new TiXmlDocument();
TiXmlDocument *outXml = new TiXmlDocument();

//加载xml文件
if(!inXml->LoadFile("a.xml")) //判断XML文件是否加载成功
{
cerr<<inXml->ErrorDesc()<<endl;
return 0;
}
//定义根节点,记录xml文件的起始节点
TiXmlElement *inRoot = inXml->FirstChildElement(); //root指向xml文档的第一个节点
inXml->Value();//获取的值为文件名
//定义根节点并连接,将输入的根节点传给输出的根节点
TiXmlElement *outRoot = new TiXmlElement(inRoot->Value());
outXml->LinkEndChild(outRoot);

if(NULL == inRoot) //判断文件是否有内容
{
cerr<<"No root element !!!"<<endl;
inXml->Clear();
return 0;
}
//循环遍历每个节点
for(TiXmlElement *inElem = inRoot->FirstChildElement(); inElem != NULL; inElem = inElem->NextSiblingElement())
{
TiXmlElement *outElem = new TiXmlElement(inElem->Value());
outRoot->LinkEndChild(outElem);
const char *name = inElem->Value();//获取源文件中子节点的名字
outElem->SetValue(name); //设置目的文件子节点的名字
//获取源文件的属性,设置目标文件的属性
const char *rName = inElem->Attribute("name");
outElem->SetAttribute("name",rName);
const char *rType = inElem->Attribute("type");
outElem->SetAttribute("type",rType);
const char *rSize = inElem->Attribute("size");
outElem->SetAttribute("size",rSize);
const char *rOdd = inElem->Attribute("odd");
outElem->SetAttribute("odd",rOdd);
if(strcmp(name,"0"))
{
for(TiXmlElement *inChild = inElem->FirstChildElement();inChild!=NULL;inChild=inChild->NextSiblingElement())
{
TiXmlElement *outChild = new TiXmlElement(inChild->Value());
outElem->LinkEndChild(outChild);
const char *cName = inChild->Attribute("name");
outChild->SetAttribute("name",cName);
const char *cType = inChild->Attribute("type");
outChild->SetAttribute("type",cType);
const char *cRatio = inChild->Attribute("ratio");
outChild->SetAttribute("ratio",cRatio);
const char *cLink = inChild->Attribute("link");
outChild->SetAttribute("link",cLink);
}
}
}
outXml->SaveFile("b.xml");
inXml->Clear();
outXml->Clear();
return true;
}

输出结果:
输出文件b.xml和a.xml 的内容是一样的。

Ⅶ 如何修改xml文件

LZ是想激活盗版的Office 2007吗?
你打开记事本, 文件->打开,找到 C:\ProgramFiles\CommonFiles\MicrosoftShared\OFFICE12\OfficeSetup Controller\Proof.en\Proof.XML 打开修改里面的文本不行吗?

我看lz并非是程序修改这个XML

Ⅷ XML文件修改

// 假定TreeView控件的id为treeView

XmlDocument dom = new XmlDocument();
dom.Load("aaa.xml");//装载XML文档
//遍历所有节点
int num = 0;
foreach(XmlElement birthday in dom.DocumentElement.ChildNodes)
{
//读取数据
string type = birthday.SelectSingleNode("type").InnerText;
string date = birthday.SelectSingleNode("date").InnerText;
string title = birthday.SelectSingleNode("title").InnerText;
string name = birthday.SelectSingleNode("name").InnerText;
string text = name + ":" + title;//节点文字
string image = type;//节点图片
string data = num.ToString();//节点对应数据
num++;
//装载示例,将新建的节点添加到TreeView
TreeNode node = new TreeNode(text, data, image);//create a new node
treeView.Nodes.Add(node);
//编辑示例:将当前节点的生日更改为当前日期
birthday.SelectSingleNode("date").InnerText = DateTime.Now.ToString();
//删除示例:将当前节点删除
birthday.ParentNode.RemoveChild(birthday);
}
dom.Save();

java修改xml文件内容

<?xml version="1.0" encoding="UTF-8"?>

<users>

<Messages>
<sendName>sendUsers</sendName>
<receiveName>snake</receiveName>
<date>2007-12-04 12:20:00</date>
<status>0</status>
<message>this is Content</message>
</Messages>

</users>

java:

package com.lianxi.DAO;
import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class UpdateXml {
public static boolean doc2XmlFile(Document document,String filename)
{
boolean flag = true;
try
{
/** 将document中的内容写入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
//transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
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;
}
/**
* 演示修改文件的具体某个节点的值
*/
public static void xmlUpdateDemo()
{
Document document = load("c://Message.xml");
Node root=document.getDocumentElement();
/** 如果root有子元素 */
if(root.hasChildNodes())
{
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循环取得ftp所有节点 */
for (int i=0;i<ftpnodes.getLength();i++)
{
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k=0;k<ftplist.getLength();k++)
{
Node subnode = ftplist.item(k);
/** 删除ftp-chn节点 */
// if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="ftp-chn")
// {
// ftpnodes.item(i).removeChild(subnode);
// }
/** 修改ftp-host的值为 192.168.0.1 */
if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="status")
{
subnode.getFirstChild().setNodeValue("1");
}
}

}
}

doc2XmlFile(document,"c://Message.xml");
}
public static void main(String args[])throws Exception
{
UpdateXml.xmlUpdateDemo();
}
}

Ⅹ 使用java如何修改某个xml文件中的某项内容

代码如下:

import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import java.io.*;
public class xml{
public void toXml() throws JDOMException,IOException{
SAXBuilder saxBuilder=new SAXBuilder(false);
saxBuilder.setExpandEntities(false);
File file = new File("c:\\test.xml");
Document doc =saxBuilder.build(new File("c:\\test.xml"));
Element elem=doc.getRootElement();
//System.out.println(elem.toString());
elem.getChild("Collectors").getChild("Collector").getAttribute("HostIP").setValue("192.168.0.1");
elem.getChild("Collectors").getChild("Collector").getAttribute("PortID").setValue("100000");
Element elem1 = (Element)elem.clone();

Document Doc=new Document(elem1);
XMLOutputter XMLOut = new XMLOutputter();
XMLOut.setEncoding("BIG5");
XMLOut.setNewlines(true);
file.delete();
XMLOut.output(Doc,new FileOutputStream("c:\\test"+".xml"));
}
public static void main(String args[]){

xml x = new xml();
try{
x.toXml();
}catch(Exception e){}
}
}

阅读全文

与c修改xml文件内容相关的资料

热点内容
数学网络研修研究问题有哪些 浏览:677
stl文件怎么打印 浏览:427
json格式变量写法 浏览:68
广州寄文件去吉林多少钱 浏览:254
苹果APP文件夹创建 浏览:903
黄米是什么app 浏览:417
word如何插入一个新文件夹 浏览:357
word文件夹前面有个符号 浏览:350
把word转换成语音 浏览:220
linuxfile文件 浏览:454
如何用网络打普通电话 浏览:463
linux进程打开的文件 浏览:134
新购u盘无法储存文件 浏览:553
5s要不要升级ios93 浏览:926
小米手机助手怎么关闭自动升级 浏览:24
外星人能不能升级到win10系统盘 浏览:652
加入java信任站点 浏览:486
好用的急救知识app 浏览:524
什么是网络适配器驱动文件名 浏览:717
吉林文件箱多少钱 浏览:113

友情链接