1

次のような構造の複雑な XML ファイルがあります。

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="xxx:xxx:xxx:xxx:xxxxx:xxx:xsd:xxxx.xxx.xxx.xx">
    <Element1>
        <Element2>
            <Element2A>xxxxxx</Element2A>
            <Element2B>2012-08-29T00:00:00</Element2B>
        </Element2>
    </Element1>
</Document>

現在、XmlReader を使用してこの XML ドキュメントを読み取り、次のように情報を処理しています。

XmlReader xr = XmlReader.Create(filename);
while (xr.Read()) 
{
   xr.MoveToElement();
   XElement node = (XElement)XElement.ReadFrom(xr);
   Console.WriteLine(node.Name);
}
xr.Close();

私が直面している問題は、出力で名前空間が ElementName の前に付けられていることです。例:出力

{xxx:xxx:xxx:xxx:xxxxx:xxx:xsd:xxxx.xxx.xxx.xx}Element1

要素名と子名を使用してさらにフィルタリングを行う必要があるため、これを削除/処理できる方法はありますか?

4

2 に答える 2

2

XElement.Nameは (ご想像のとおり)Stringではなく、プロパティXNameを持つです。したがって、次のようになります。LocalName

Console.WriteLine(node.Name.LocalName);
于 2012-10-09T10:30:17.333 に答える
0

名前空間を削除することをお勧めします。名前空間を削除する1つの方法は、c#コードを記述することであり、他の方法は、名前空間の削除 -Milindで提案されているようにXSLT変換を使用することです。

于 2012-10-09T10:37:23.017 に答える