0

私はこのxmlを持っています:

<?xml version="1.0" encoding="UTF-8"?>
<Dictionary>
<Object name="Ship">
    <Struct_Name>tb_Ship</Struct_Name>
        <Owner> ..... </Owner>
           <Parameters>
        <Parameter>
        <Eng_Name>.....</Eng_Name>
        <Discr>.....</Discr>
        <Type>.....</Type>
        </Parameter>

        <Parameter>
        <Eng_Name>......</Eng_Name>
        <Discr>.........</Discr>
        <Type>.................</Type>
        </Parameter>
</Object>

        <Object name="Car">
        <Struct_Name>tb_Car</Struct_Name>
        <Owner> ..... </Owner>
           <Parameters>
        <Parameter>
        <Eng_Name>.....</Eng_Name>
        <Discr>.....</Discr>
        <Type>.....</Type>
        </Parameter>

        <Parameter>
        <Eng_Name>......</Eng_Name>
        <Discr>.........</Discr>
        <Type>.................</Type>
        </Parameter>
   </Object>
</Dictionary>

私はこのxmlを次のように読み込もうとします:

foreach(var Object in Objects)
print the whole elements values
   foreach(var Parameter in Parameters Of Current Object)
      print the whole elements of current parameter

私は2つのforeachを試してみましたが、常に例外が発生し、オブジェクトがオブジェクトのインスタンスに設定されていません。私が望むようにこのxmlを読む方法はありますか?

4

1 に答える 1

0

xpathを使用して、必要なものを取得できます。たとえば、すべてのパラメーターを取得したい場合です。

XmlDocument doc = new XmlDocument();
doc.Load("file.xml");
XmlNodeList parameters = doc.SelectNodes("Dictionary/Object/Parameters/Parameter"); 
// or doc.SelectNodes("//Parameter"); 
foreach(XmlNode parameter in parameters)
{
    // print the whole element
}  

お役に立てば幸いです。
ちなみに、あなたのxmlでは、「Parameters」タグは閉じられていません。

于 2013-03-16T02:40:45.927 に答える