2016-04-25 10 views
0

私はC#でいくつかのXMLを処理していますが、xmlファイルの構文解析に問題があります。私はこのファイルの形式を制御できません。ファイルは "test.xml"です(下記参照)。私はデータのxml部分にのみ関心がありますが、アクセスするための最善の方法は不明です。どんな考えや勧告も高く評価されます。xml以外のデータが含まれているXMLを解析する方法

Test data -1 
Smith, 2234 

@@*j 

Random-- 

@<?xml version="1.0" encoding="utf-16"?> 
<ConfigMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.Test.com/schemas/Test.test.Config"> 
    <Config> 
    <Version>10</Version> 
    <Build>00520</Build> 
    <EnableV>false</EnableV> 
    <BuildL>22</BuildL> 
    <BuildP>\\testpath\test</BuildP> 
    </Config> 
</ConfigMessage> 
@ 
+1

手動で行う必要があります。 xmlの開始位置と終了位置を見つけ出し、文字列をその位置までトリミングします。 – Jonesopolis

+1

私はこれを "非XMLデータを含むXML"とは記述しません。 XMLデータが入った非XMLファイルとして記述しました。非XMLコンテナの形式に関して与えた唯一の手がかりは、一例です。これは一般的な規則を描くには不十分ですが、XML部分を省略してXMLパーサーに送信する必要があります。 –

+0

提案をありがとう、マイケル。私はあなたの結論に同意します...ファイルの種類については、それは技術的にはxmlファイル(.xml)で、その中に非xmlデータを持っています。 – samuraiY

答えて

0

最初の「<」内の何もして、ファイル上で検出された最後の「>」の文字を含む文字列にファイル全体を置きます。その後、そこから通常のXMLとして扱うことができます。そこにランダムな非XML要素がある場合でも、XMLブロックの開始/停止を検出するロジックを追加する必要があります。

0

私はあなたにそのような解決策を提案することができます:シンプルなテキストファイルのように擬似XMLを開いて、その後、regexを使って全文を読むと、xml文書(変換できる原始文書の一部XML [| startTag | 任意の記号 |/endTag |])をXDocument(メモリ内)に入れ、XMLファイルのように解析します。

関連する問題