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>2 番目のファイルでは 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 に答える