-1

私は中級レベルの C# プログラマーで、XML ドキュメントについて助けが必要です。

次のことを行う必要があります。

  1. かなり大きな XML ドキュメントを解析する A
  2. 特定の要素と値を抽出する
  3. これらの値を新しい XML ドキュメント B に格納します (要素名は異なります)。

XML ドキュメント B の要素の名前は異なりますが、ドキュメント A から抽出された値は同じです。

これを達成するための最良の設計を手伝ってくれる人はいますか?

データ コントラクト/シリアライゼーションを使用する必要がありますか、列挙型を使用して XML 要素を格納する必要がありますか………。

上記を達成するための最良の方法の概要を教えてください。または例を教えてください。

4

4 に答える 4

2

XML を読み取り、それに基づいて XML を作成する場合は、XSLT の使用を検討することをお勧めします。これは、XQuery と XPath を使用して XML ドキュメントを新しい XML ドキュメントに変換する方法です。将来、この種のことを XML でも行う場合は、学習する価値があります。

コード プロジェクトのチュートリアルへのリンクは次のとおりです: http://www.codeproject.com/Articles/460968/XSLT-2-0-programming-basics

于 2013-01-11T18:30:38.570 に答える
1

LINQ to XMLをお勧めします

ある XML ドキュメントを別のドキュメントに厳密に翻訳するだけの場合は、翻訳を行うために XSLT を作成することも検討してください。

于 2013-01-11T17:34:18.820 に答える
0

私は通常、XmlDocumentクラスとXPathを使用します

いくつかのxpathの例はここにあります

以下は、ある文書から値を取得して別の文書に入れるという、XML 文書をいじる例です。

XmlDocument xDoc = new XmlDocument();
xDoc.Load("filename.xml");

string val = xDoc.SelectSingleNode("//ElementName").Attributes["attributeName"].Value;

XmlDocument xDoc2 = new XmlDocument();
XmlElement ele = xDoc2.CreateElement("ElementName2");
XmlAttribute att = xDoc2.CreateAttribute("attributeName2");
att.Value = val;
ele.Attributes.Append(att);
xDoc2.AppendChild(ele);
于 2013-01-11T17:34:52.937 に答える
0

いくつかの疑似コードと情報。情報を提供していないため、具体的には言えません。

Xml A1 -を使用してロードしますXmlDocument

var aDoc = new XmlDocument();
aDoc.Load("someFile.xml");

2 - 特定のノードが必要だと言ったので、xPathを使用してそのノードを抽出できます。(xPath は単なる例です)

XmlNode extractedNode = aDoc.SelectSingleNode(/rootNode/parentNode);

3 - ノードが抽出されたので、それを新しいドキュメントに配置しますbDoc( とまったく同じようにロードされますaDoc)。

XmlNode rootNode = bDoc.DocumentElement;
rootNode.AppendChild(extractedNode);

非常に基本的で、具体的ではありませんが、現在の質問を思い付くことができます。

于 2013-01-11T17:40:38.413 に答える