2017-08-15 17 views
0

2つのxmlファイルを結合する必要があります。XMLノードを追加するC#

Test1.xmlが

<ProfileSearchResponse xmlns="xxxRestServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <Profile> 
    <Category> 
     <a>Test1 string</a> 
     <b>Test3 string</b> 
    </Category> 
    <Chapters> 
     <Chapter> 
      <Name>bi weekly Update</Name> 
     </Chapter> 
    </Chapters> 
     <Disclaimer>"The purpose of the Profiles is xxxxxx </Disclaimer> 
     <RelatedProfiles>Blah blah testing this </RelatedProfiles> 
</Profile> 
</ProfileSearchResponse> 

を下回っているTest2.xmlこれは、予想される出力され

<ProfileSearchResponse xmlns="xxxRestServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <Profile> 
     <Chapters> 
      <Chapter> 
       <Name>Previous bi weekly Updates</Name> 
      </Chapter> 
     </Chapters> 
     <Disclaimer>"The purpose of the Profiles is xxxxxx </Disclaimer> 
    </Profile> 
</ProfileSearchResponse> 

を下回っています。

<ProfileSearchResponse xmlns="xxxRestServices" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <Profile> 
    <Category"> 
     <a>Test1 string</a> 
     <b>Test3 string</b> 
    </Category> 
    <Chapters> 
     <Chapter> 
      <Name>bi weekly Update</Name> 
     </Chapter> 
     <Chapter> 
      <Name>Previous bi weekly Updates</Name> 
     </Chapter> 
    </Chapters> 
     <Disclaimer>"The purpose of the Profiles is xxxxxx </Disclaimer> 
     <RelatedProfiles>Blah blah testing this </RelatedProfiles> 
</Profile> 
</ProfileSearchResponse> 

"Chapter"ノードをTest2.xmlから取得し、Test1.xmlに追加しようとしています。 これは私が書いたC#プログラムの一部です。

XmlDocument document1 = new XmlDocument(); 
      XmlDocument document2 = new XmlDocument(); 
      document1.Load(@"C:\test1.xml"); 
      document2.Load(@"C:\test2.xml"); 
      XmlNode myNode = document2.DocumentElement.SelectSingleNode("//Chapter"); 
     document1.DocumentElement.AppendChild(myNode); 

myNodeがnullである理由はわかりません。私はどのようにノードを追加するかについてはあまりよく分かりません。どんな助けもありがとうございます。

おかげ MR

+0

を使用するのを忘れてわかりません章を既存のタグの章に置き換えます。 – jdweng

答えて

0

MYNODEが

nullである私はなぜあなたがXmlNamespace xxxRestServicesあなたが各章を取得し、新しいを追加する必要がある文書1

XmlDocument document2 = new XmlDocument(); 
document2.Load(@"d:\temp\a.txt"); 

XmlNamespaceManager mgr = new XmlNamespaceManager(document2.NameTable); 
mgr.AddNamespace("ns", "xxxRestServices"); 

XmlNode myNode = document2.DocumentElement.SelectSingleNode("//ns:Chapter",mgr); 
+0

urコードの後に​​document1.DocumentElement.AppendChild(myNode);を追加しました。私は "挿入されるノードは別の文書のコンテキストから来ている"ということになります。これはどういう意味ですか – user2726975

+0

'これはどういう意味ですか? 'エラーメッセージをgoogleに書き込んで、最初のリンクを開きます。 'var newNode = document1.ImportNode(myNode、true); document1.DocumentElement.AppendChild(newNode); ' –

関連する問題