gpt4 book ai didi

c# - XML 到文本转换

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:48 26 4
gpt4 key购买 nike

我想用 C# 编写一些东西,它接受 Xml 并将其转换为纯文本。

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

会变成:

To Tove
From Jani
Heading Reminder
Body don't forget me this weekend!

有这样的东西吗?我该怎么做呢?

粗略地说,我要实现的想法还需要大量工作:

private void dataGridViewResult_SelectionChanged(object sender, EventArgs e)
{
if (this.dataGridViewResult.SelectedRows.Count > 0)
{
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("SQL"); //.xml

xslt.Transform("SQL","SQL"); //.xml, .html
this.richTextBoxSQL.Text = this.dataGridViewResult.SelectedRows[0].Cells["SQL"].Value.ToString();
}
}

最佳答案

以下 XSLT 脚本将执行您想要的操作:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="*">
<xsl:for-each select="*">
<xsl:value-of select="local-name()"/>
<xsl:text> </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

然后您可以使用 XslCompiledTransform 类来应用脚本:

private string transformXml(string sourceXmlText, string xsltText)
{
XmlDocument sourceXmlDocument = new XmlDocument();
sourceXmlDocument.LoadXml(sourceXmlText);
XslCompiledTransform transformer = new XslCompiledTransform();
XmlTextReader xsltReader = new XmlTextReader(new StringReader(xsltText));
transformer.Load(xsltReader);
MemoryStream outputStream = new MemoryStream();
XmlWriter xmlWriter = XmlWriter.Create(outputStream, transformer.OutputSettings);
transformer.Transform(sourceXmlDocument, null, xmlWriter);
outputStream.Position = 0;
StreamReader streamReader = new StreamReader(outputStream);
return streamReader.ReadToEnd();
}

它显然比人们发布的其他解决方案更复杂,但它的主要优点是能够在需要更改格式时轻松更改脚本。

关于c# - XML 到文本转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980237/

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