gpt4 book ai didi

c# - 在特定位置的 xml 中添加文本行?

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:39 25 4
gpt4 key购买 nike

如何将以下样式表信息插入到使用 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\""));

这是您要找的吗?

关于c# - 在特定位置的 xml 中添加文本行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com