2011-06-16 10 views
2

C#を使用して作成された既存のxmlファイルに次のスタイルシート情報を挿入するにはどうすればよいですか?特定の場所にxmlのテキスト行を追加しますか?

<?xml-stylesheet type="text/xsl" href="_fileName.xsl"?> 

または....新しいXMLファイルの作成時にこの行を追加できますか?

編集:

私はこのような何か、(ヒットと裁判)XmlSerialierを使用して、上記を達成しようとした:

// assumes 'XML' file exists. 
XmlDocument doc = new XmlDocument(); 
XElement dataElements = XElement.Load("_fileName.xml"); 
XmlSerializer xs = new XmlSerializer(typeof(Parents)); 
var ms = new MemoryStream(); 
xs.Serialize(ms, parents); 
ms.Seek(0, SeekOrigin.Begin); // rewind stream to beginning 
doc.Load(ms); 
XmlProcessingInstruction pi; 
string data = "type=\"text/xsl\" href=\"_fileName.xsl\""; 
pi = doc.CreateProcessingInstruction("xml-stylesheet", data); 
doc.InsertBefore(pi, doc.DocumentElement); // insert before root 
doc.DocumentElement.Attributes.RemoveAll(); // remove namespaces 

しかし、出力XMLが壊れてきている。

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="_fileName.xsl"?> 
<parents /> 

希望の出力は次のようなものです:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="_fileName.xsl"?> 
<parents> 
<parent> 
<Child1> 
<child2> 
</parent> 
</parents> 

これは私の問題が何であるかを理解するのに役立ちましたか?

+0

これはc#でどのライブラリを使用して作成されますか? – ub1k

+0

上記の編集はどのようにしても助けになりましたか? – gsvirdi

答えて

2

「あなたは何を使っていますか?」という質問には答えませんでした。

は私が助言するものの:

XDocument 

あなたがそれを使用する場合は、のような何かができる:

XDocument document = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); 

document.Add(new XProcessingInstruction(
     "xml-stylesheet", "type=\"text/xsl\" href=\"_fileName.xsl\"")); 
//and then your actual document... 
document.Add(
    new XElement("parent", 
     new XElement("child1"), 
     new XElement("child2") 
    ) 
); 

EDIT:あなたができるので

[OK]をそれが好き:

XDocument document = XDocument.Load("file"); 
document.AddFirst(new XProcessingInstruction(
    "xml-stylesheet", "type=\"text/xsl\" href=\"LogStyle.xsl\"")); 

これはyお探しですか?

+0

空白以外の文字はコンテンツに追加できません。 document.Add(新しいXDeclaration( "1.0"、 "utf-8"、 "yes")); – gsvirdi

+0

確かに - >私はそれを固めた。編集されました。今すぐチェックしてください。 – ub1k

+0

Thx、これは新しいxmlファイルの作成には最適ですが、ファイルが追加されると(新しい子が追加された場合)、このxsl情報は削除されます。同じxmlファイルを追加しながらこのxsl情報を保持する方法は? – gsvirdi

関連する問題