这是一个例子。
文件1:
<entry>
<uselesstag1>data!</uselesstag>
<identifier>entryname<identifier>
<uselesstag2>data</uselesstag>
<uselesstag5>moredata</uselesstag>
<importantdata>8</importantdata>
<uselesstag3>somemoredata<uselesstag>
</entry>
[...]
文件2:
<entry>
<uselesstag6>yetmoredata</uselesstag>
<identifier>entryname<identifier>
<uselesstag3758>data</uselesstag>
<uselesstag25>moredata</uselesstag>
<uselesstag100>whynotmoredata<uselesstag>
<importantdata>0</importantdata>
<uselesstag603>stilldata<uselesstag>
</entry>
[...]
我想做的是以下内容:
如果<importantdata>
中的数据在第二个文件中为0但在第一个文件中不是,请将其替换为第一个文件的值。
提前感谢您的帮助。
答案 0 :(得分:0)
我不知道您使用的编程语言,这是一个C#解决方案。
//Load your xml files first
XmlDocument doc1 = new XmlDocument();
doc1.Load("file1.xml");
XmlNode root1 = doc1.DocumentElement;
XmlDocument doc2 = new XmlDocument();
doc2.Load("file2.xml");
XmlNode root2 = doc2.DocumentElement;
//Find <importantdata> in each xml document
XmlNode importantDataInFile1 = root1.SelectSingleNode("/entry/importantdata");
XmlNode importantDataInFile2 = root2.SelectSingleNode("/entry/importantdata");
string value1 = importantDataInFile1.InnerText;
string value2 = importantDataInFile2.InnerText;
//If the data in <importantdata> is 0, replace its value with value1
if (value2.Equals("0") && !value1.Equals("0"))
{
importantDataInFile2.InnerText = value1;
doc2.Save("file2.xml");
}
这不是一个难题,我认为你可以让它发挥作用。希望它有所帮助。