在特定位置添加一行xml文本
本文关键字:一行 xml 文本 定位 位置 添加 | 更新日期: 2023-09-27 17:59:20
如何将以下样式表信息插入到使用C#创建的现有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>
这有助于理解我的问题吗???
你没有回答这个问题。。"你用什么库"。
尽管我建议:
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")
)
);
编辑:
好的,所以你可以这样做:
XDocument document = XDocument.Load("file");
document.AddFirst(new XProcessingInstruction(
"xml-stylesheet", "type='"text/xsl'" href='"LogStyle.xsl'""));
这就是你要找的吗?