2016-12-18 29 views
0

Microsoft Dynamics CRMからdocument xmlという単語にアクセスし、XMLマッピングペインで追加されたフィールドを置き換えるアプリケーションを開発しています。Openxmlを使用してWord文書のフィールド値を置き換えます。

以下は、OpenXMLで取得されるXMLです。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 wp14"><w:body><w:sdt><w:sdtPr><w:id w:val="1519887787"/><w:placeholder><w:docPart w:val="DefaultPlaceholder_1081868574"/></w:placeholder><w:dataBinding w:prefixMappings="xmlns:ns0='urn:microsoft-crm/document-template/new_candidate/10006/' " w:xpath="/ns0:DocumentTemplate[1]/new_candidate[1]/new_candidatename[1]" w:storeItemID="{2D909ED6-F428-47C5-93D4-89B5709D4B5C}"/><w:text/></w:sdtPr><w:sdtContent><w:p w:rsidR="0055490F" w:rsidRDefault="00F5486B"><w:r><w:t>new_candidatename</w:t></w:r></w:p></w:sdtContent></w:sdt><w:bookmarkStart w:id="0" w:name="_GoBack" w:displacedByCustomXml="prev"/><w:bookmarkEnd w:id="0" w:displacedByCustomXml="prev"/><w:sectPr w:rsidR="0055490F"><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1701" w:right="1134" w:bottom="1701" w:left="1134" w:header="708" w:footer="708" w:gutter="0"/><w:cols w:space="708"/><w:docGrid w:linePitch="360"/></w:sectPr></w:body></w:document> 

上記のXMLでは、new_candidatenameという1つのフィールドがありますが、これを自分のカスタム値に置き換えます。

OpenXMLを使用して値を置き換えるにはどうすればよいですか?

答えて

0

c#を使用している場合、openxmlを使用する理由はありません。 xml linqライブラリを使用することができます。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XDocument doc = XDocument.Load(FILENAME); 
      XElement t = doc.Descendants().Where(x => x.Name.LocalName == "t").FirstOrDefault(); 
      t.Value = "New Value"; 

      doc.Save(FILENAME); 

     } 
    } 
} 
+0

返信いただきありがとうございます。これを試してみて、結果をお知らせします。 – User5590

関連する問題