私はやるべきことがあります。私はxmlをhtmlファイルに変換する必要があります。私は、タグを確認し、XMLファイルからのタグに基づいてHTMLファイルを記述します。 私が見つけたように<BookHeader>
私は<h1>
をhtmlファイルに書きます。xmlファイルをhtmlに変換する
私はXML要素一つずつ読み出すC#
このコードを持っているXML
<BookHeader>
<AuthorGroup>
<Author >
<AuthorName >
<GivenName>Juanita</GivenName>
<FamilyName>Gomez</FamilyName>
</AuthorName>
<Contact>
<Email>[email protected]</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>
この
レイアウトを有しています。これまでに以下のコードが行う印刷は、すべての要素とその内容
ですが、要素名は、プログラムは非常にその閉じタグまで
をタグの内容を読むことはありません<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++;
}
ファイルを手動で解析する代わりに 'xslt'を使用します。または、本当にロジックが必要なときには、xmlを解析せずに逆シリアル化するか、 'xpath'でクエリを実行します。 – Aphelion
しかし、私はxsltファイルを持っていません。ユーザーが望むのはファイルを読み込み、出力はhtmlファイルです。入力はxml – knowme
です。「プログラムはタグの内容を終了タグまで読み上げるべきではない」とはどういう意味ですか?あなたが何かの背後にあるものを何度も読んでいきたいと思えば、これは不可能だと思います。 OTOHの場合、xmlは2つの最上位レベルのノード 'BookHeader'と' ChapterInfo'を持っているので、あなたのXMLはまったく有効ではありませんので、有効にするために "around"というものがあると仮定します。 「読んでいない」のではなく、そのセクションに対応するHTMLコードを「出力」したくないことを示す変数をコードに入れてください。 –