0

这是一个例子。

文件 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,而第一个文件中没有,则将其替换为第一个文件的值。

提前感谢您的帮助。

4

1 回答 1

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");
        }  

这不是一个困难的问题,我认为你可以让它发挥作用。希望能帮助到你。

于 2013-01-10T09:11:25.673 回答