gpt4 book ai didi

c# - 使用 C# 检索 XSL 文件中的参数

转载 作者:行者123 更新时间:2023-11-30 23:16:08 25 4
gpt4 key购买 nike

在下面的代码片段中,我尝试使用 C# 检索选择值 变量。我想打开一系列 XSL 文件并动态获取这些字段名称的列表,如下所示:

txt附加信息

txtFormattedDate

因此用户可以添加自己的值以与 XSL 合并。如何检索这些名称?

谢谢

卡尔

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/Document">
<html>
<head>
</head>
<body>
<table>
<tr>
<td width="75"></td>
<td>
<table width="660" border="0">
<tr>
<td colspan="2" style='font-size:12.0pt;font-family:"Arial";text-align:left'>
<xsl:value-of select="txtAdditionalInfo"/>
<br /><br />
<br />
</td>
</tr>

<tr>
<td align="left" height="32" valign="bottom">
</td>
<td align="left" height="32" valign="bottom" style='font-size:12.0pt;font-family:"Arial";text-align:left'>
<xsl:value-of select="txtFormattedDate"/>
</td>

最佳答案

只是为了获取文本(任务的简单部分)你可以通过 3 种方式(甚至更多):

  1. 读取每一行并解析包含“xsl:value-of”的行:

这一个很容易做到,只需要像这样的代码:

string[] lines = System.IO.File.ReadAllLines("File.xls");
foreach(string line in lines)
{
if((line).Trim().StartsWith("<xls:value-of"))
{
Console.WriteLine(line.Split(new[]{" select=\"", "\"/>"},
StringSplitOptions.RemoveEmptyEntries)[0]);
}
}

如果<xsl:value-of,这应该写出所有的“值”将在单独的行上。如果不是,您可以以某种方式调整上面的代码以获得预期的结果。

  1. 使用正则表达式解析文档并找到确切的行:

这需要一些关于 Regex 的知识(正则表达式)。您也可以尝试在线示例来执行此操作:

string xls = System.IO.File.ReadAllText("File.xls");
string pattern = @"<xsl:value-of\s+select="(\w+)"\s*\/>";
var lResult = Regex.Match(xls, pattern);

if(lResult.Success)
foreach( var iGroup in lResult.Groups)
Console.WriteLine(iGroup);

在线示例:https://regex101.com/r/uViRnx/1(我没有在真实代码中测试过,可能需要很少的调整)

  1. 将整个文件解析为 XML 文件:

嗯,这部分是最难的,但可能会给你 future 最大的优势,你想进一步修改文件。您应该将 XLS 文档作为 XML 文件加载到 XLS object 中。或您自己的对象 -> 此过程称为 Deserialization .

有一个关于XML反序列化的话题:How to Deserialize XML document

有一个主题如何阅读 XLS 文档: https://www.codeproject.com/Tips/801032/Csharp-How-To-Read-xlsx-Excel-File-With-Lines-of

关于c# - 使用 C# 检索 XSL 文件中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42139648/

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