我有一项任务要做。我需要将xml转换为html文件。我检查标签,然后使用基于xml文件的标签编写html文件。
就像我找到<BookHeader>
我在html文件中写<h1>
一样。
我有这个
xml的布局
<BookHeader>
<AuthorGroup>
<Author >
<AuthorName >
<GivenName>Juanita</GivenName>
<FamilyName>Gomez</FamilyName>
</AuthorName>
<Contact>
<Email>Juanita@gmail.com</Email>
</Contact>
</Author>
</AuthorGroup>
</BookHeader>
<ChapterInfo >
<ChapterID>1</ChapterID>
<ChapterNumber>Chapter 1</ChapterNumber>
<ChapterTitle Language="En">Just some Title</ChapterTitle>
<ChapterHistory>
<RegistrationDate>
<Year>2020</Year>
<Month>8</Month>
<Day>18</Day>
</RegistrationDate>
</ChapterHistory>
</ChapterInfo>
我在c#
中有这段代码我逐个阅读xml元素。到目前为止,下面的代码是打印所有元素及其内容
但我想要做的是,如果元素名称为<ChapterHistory>
,程序将无法读取标记内容直至其结束标记
所以程序不会读取标签
<RegistrationDate>
<Year>2020</Year>
<Month>8</Month>
<Day>18</Day>
</RegistrationDate>
我该怎么做?非常感谢。我很难做到这一点
XmlReader rdr = XmlReader.Create(new System.IO.StringReader(myString));
while (rdr.Read())
{
switch (rdr.NodeType)
{
case XmlNodeType.Element:
Console.WriteLine("<" + rdr.Name + ">");
break;
case XmlNodeType.Text:
Console.WriteLine(rdr.Value);
break;
case XmlNodeType.EndElement:
Console.WriteLine("...");
break;
}
count++;
}
答案 0 :(得分:1)
NB。我不懂C#所以我只能用简单的语言解释。
您可以简单地映射值,例如如果rdr.Name是BookHeader
,那么写<h1>
等.pp。如果您可以访问rdr.Name
案例中的EndElement
,则可以关闭相同的映射值,例如</h1>
。否则,您必须自己跟踪开放元素并关闭最内层元素。
关于跳过某些xml结构的问题,请参阅我对该问题的评论。
请注意,我同意其他一些评论员认为此问题通常更适合XSLT解决方案。