2016-10-25 10 views
0

XMLを解析して、整形済みで有効なxmlをすべて1つのtxtファイルに書き込もうとしています(string1参照)。他のタイプのxmlは別のtxtファイルに書き込まれるべきです(文字列2,3を参照)。問題は、私だけがstring1とXMLSをキャッチすることができるということです2番目と3番目のforループの一括出力が表示されない

<status>Well-Formed and valid</status> 

または

<status>Well-Formed, but not valid </status> 

または

<status>Not well-formed </status> 

:常に分析されるべきであるxmlファイルには、以下の構造を有しています。 txtファイルにstring2とstring3のxmlsの出力はありません。なぜ私は理解できないのですか?

set string1=Well-Formed and valid 
    set string2=Well-Formed, but not valid 
    set string3=Not well-formed 

for /f %%i in ('dir /b /s C:\Users\NekhayenkoO\outputxml\') do (
for /f "tokens=3 delims=>/<" %%h in ('find "%string3%" %%i ') do (
echo %%~ni %%h >> C:\Users\N\outputxml\formed2.txt 
) 

for /f "tokens=3 delims=>/<" %%h in ('find "%string1%" %%i ') do (
echo %%~ni %%h >> C:\Users\N\outputxml\Well-formed_and_valid.txt 
) 

for /f "tokens=3 delims=>/<" %%h in ('find "%string2%" %%i ') do (
    echo %%~ni %%h >> C:\Users\N\outputxml\formed1.txt 
) 
) 
+0

'.txt'ファイルに実際に何を書きたいのですか?私は、それは '正式で有効な'部分だと思います。 ''の前に空白がありますか?彼らは確かに常にそこにいるのですか?とにかく、空白やその他の特殊文字(例えば、 '%% i' - ' '%%〜i' ​​'、' >> C:\ Users \ N \ outputxml \ formed2.txt' - > '>>" C:\ Users \ N \ outputxml \ formed2.txt "')。次に、オプション文字列 '' delims = "'を外側のfor/F'ループに追加する必要があります。 – aschipfl

答えて

0

私はあなたが内側のループのそれぞれに同じ%% hのを使用していたし、あなたのfindコマンドの出力は、あなたの期待を生産されなかったという事実に対応するために、あなたの提供されたファイルへの迅速な変更を行ってきました出力。

set string1=Well-Formed and valid 
set string2=Well-Formed, but not valid 
set string3=Not well-formed 
for %%i in (j k l) do (set %%i=0) 
for /f "delims=" %%i in ('dir/b/s C:\Users\NekhayenkoO\outputxml') do (
    for /f "tokens=3 delims=>/<" %%j in ('find "%string3%"^<"%%i"') do (
     set/a j+=1 
     >>C:\Users\N\outputxml\formed2.txt echo %%~ni %%j) 
    for /f "tokens=3 delims=>/<" %%k in ('find "%string1%"^<"%%i"') do (
     set/a k+=1 
     >>C:\Users\N\outputxml\Well-formed_and_valid.txt echo %%~ni %%k) 
    for /f "tokens=3 delims=>/<" %%l in ('find "%string2%"^<"%%i"') do (
     set/a l+=1 
     >>C:\Users\N\outputxml\formed1.txt echo %%~ni %%l)) 
echo=totals&echo=%string1%=%i%&echo=%string3%=%j%&echo=%string3%=%k% 

あなたが役に立っているかどうかを確認してください。

+0

私はそれが決定だと思ったが、役に立たない。たぶん問題はxmlファイルですが、それらはすべて同じに見えます –

+0

_それは助けにならないと言うと、私は何かを修正したので技術的には間違っています。私のポストはあなたの明白なエラーを解決するためのものでしたが、期待される出力をより良く説明し、現時点で何が出力として得られていない限り、スクリプトを修正するつもりはありません。 – Compo

+0

よろしくお願いします。あなたは本当に私が見たことのない明らかなエラーで私を助けました。どうもありがとう!今すぐ希望の出力が得られます:元のXMLファイルから変数を宣言している位置に、「整形式ではない」と「整形式ですが有効ではありません」をコピーしました。だから私は思ったフォントのすべてについてだった –

関連する問題