プロジェクトでは、XML ファイルを読み取って文字列データを取得しています。非常にうまく機能しますが、1 つの例外があります。XML ファイルの構造は次のとおりです。
<Table>
<row>
<queryId>customAnalyticsParam</queryId>
<queryStatement>
1|-1|-1|-1
</queryStatement>
</row>
</Table>
table タグには複数の行タグが含まれています。各行タグは queryId タグで区別されます。上記の構造は、次のコードで非常にうまく機能します。
string query = "";
XmlDocument xd = new XmlDocument();
xd.Load(xml_query_filePath);
XmlNode xnode = xd.SelectNodes("/Table/row/queryId[.='" + id.Trim() + "']")[0];
query = xnode.NextSibling.NextSibling.InnerText;
上記のコードの 3 行目の id は、関数のパラメーターで提供される queryId です。XML が次の形式の場合、例外が発生します。
<Table>
<row>
<queryId>
customAnalyticsParam
</queryId>
<queryStatement>
1|-1|-1|-1
</queryStatement>
</row>
</Table>
つまり、queryId ノードの前後の行間です。これらの改行スペースが原因で、コードはノードを見つけることができず、null を返します。
方法を見つけるのを手伝ってください。
ありがとう