【发布时间】:2019-04-20 11:39:07
【问题描述】:
我正在编写一个生成结构化文本文件的后端 API。根据用户输入,某些字符串通过插值填充
// actual string literal
string message = $@"Version {version} of Markdown Monster is now available.
Released on: {releaseDate:MMM dd, yyyy}
{newStuff}
";
https://weblog.west-wind.com/posts/2016/Dec/27/Back-to-Basics-String-Interpolation-in-C.
我创建了一个 100 LOC 的文本文件,用我传递的 JSON 值填充所需的内容。
有时只需要文本文件的“部分”。如果需要,如何对要生成的文本部分进行标记和赋值?有很多可能的排列,大约 30 个不同的文本文件将由模板生成。
因此,想象一个 XML 文件,并在您的脑海中将其分解为 30 个单独的部分。通过任意用户输入以编程方式将一些片段按某种顺序排列。
//piece A
<?xml version = "1.0" encoding = "utf-8"?>
<!-- planes.xsd
A simple schema for planes.xml
-->
//piece b
<xsd:element name = "planes">
<xsd:complexType>
<xsd:all>
<xsd:element name = "make"
type = "xsd:string"
minOccurs = "1"
maxOccurs = "unbounded" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
//piece C
lorem ipsosume....
格式和缩进也必须保留。
【问题讨论】:
-
我不明白你所说的“sections”、“tokenize”等是什么意思。你能举个例子吗?
-
将一些文本放在一个块中
<?xml version = "1.0" encoding = "utf-8"?> <!-- xslplane.1.xml --> <?xml-stylesheet type = "text/xsl" href = "xslplane.1.xsl" ?> <plane> <year> 1977 </year> <make> Cessna </make> <model> Skyhawk </model> <color> Light blue and white </color> </plane>如果用户触发了文本出现在可交付成果上的标志。上面的代码是“block A”,所以如果我有三十个左右的标志,“block A”可能会出现,但有时会出现“block B”或“C”以某种顺序出现。希望可以清除它。@klausGutter -
对不起,我没有更清楚
-
@KlausGütter 编辑的 OP 希望能清除它