2009-03-25 11 views
0

タグ内の空白を保持することはできますか?タグ内に "空白"を残す

私は、XPathNodeIteratorを使用してXPathDocument内のXMLノード(XHTMLコンテンツを含む)にアクセスしています。

ノード内のタグの中には、「厳密な」XHTMLではないものがあります(これは、ツールの最終出力で許可されています)。一部のノードには、末尾にスペースがない画像タグが含まれています。

<img src="filename.png" alt="description"/> 

結果のノードを保存すると、末尾のスペースでうまくフォーマットされます。

<img src="filename.png" alt="description" /> 

タグ内のスペース(この場合はスペースがない)を保持してノードの内容を取得できますか? 私はPreserveWhitespaceに似た何かについて考えていました。

コードの簡略化されたサンプルは

xmlDoc = New XPathDocument(fileIn, xmlSpace.Preserve) 
xmlNav = xmlDoc.CreateNavigator() 
Dim xmlNode As XPathNodeIterator 
Dim ns As XmlNamespaceManager = new XmlNamespaceManager(xmlNav.NameTable) 

xmlNode = xmlNav.Select("/export/contents[target[@translate='True']]") 
While xmlNode.MoveNext() 
    target = xmlNode.Current.selectSingleNode("target").InnerXML 
    ' ... ' 
End While 

いくつかの背景を使用する:マークが指摘したようにタグ内の非有意空白に関して得られたXMLの意味で違いはありません(またはその問題のタグオーダー)。

私が直面する主な問題は、データが新しいコンテンツと従来のコンテンツの両方を処理するCMSシステムから得られることです。コンテンツ作成プロセスは、最近XML/XHTMLに移行したため、システム内にまだ厳密ではない厳密なXHTMLコンテンツが残っています。

使用されるQAツールは、依然として主にテキストベースであり、HTML用に構築され、別の部門によって実行されます(QAプロセスは調整/更新する必要があります)。これは、私ができるだけ元の形式に近いタグを保持したい理由です。


は、一時的な仕事は、私の周りには、検索および.NETでXMLを解析することによって導入された「違い」を修正する(ノードの新しいおよび以前のバージョンとの比較)、いくつかの正規表現を追加したよう

+0

私はむしろ内容を編集しないので、xml:空白をコンテンツに追加することは本当にオプションではありません。 – barry

+0

XMLノードにアクセスして出力する方法を示すコードサンプルを表示できますか? – Cerebrus

+0

サンプルコード – barry

答えて

1

私はそれらの2つ(些細な空白)を区別するパーサー/ xmlツール/ etc(.NETでは少なくとも)を認識していません。意味の面では、それらが同一である - 同じ、彼らがそうであるように同じに:

<img alt="description" src="filename.png" /> 
+0

を追加しました。最終結果はまったく同じです(最終的なXHTMLも同じです)。問題は、単純なテキスト比較では1つのスペースの違いがあることです。私は違いはないと同意しますが、要件はタグの間隔が同じである必要があると言います... – barry

+0

次に、要件はXMLの本質を無視しています... –

+0

私はすべての面で結果にかかわるリスクがないことをクライアントに確信させるために最善を尽くしています。そして、それは技術的に「清潔な」コンテンツに終わる。 – barry

0

ポストプロセス正規表現sのファイル/ [] [/] [>]/[/] [>]/g。

XHTMLを生成している場合、< br />を< br />に置き換えると、いくつかの下位レベルのブラウザが壊れる可能性があることに注意してください。 < br />は不明な属性 "/"を持つHTMLタグとして認識され、無視されます。 < br />は未知のHTMLタグ "br /"と見なされます。

+0

ありがとうございます。現時点では、「処理済み」タグとCMS内のソースとのタグごとの自動比較が行われ、必要に応じて(正規表現を使用して)タグが「修正」されます。ターゲットは現在厳格なXHTMLではないので、ブラウザを使用するための最低限の要件があります。私は幸いにもダウンレベルの互換性について心配する必要はありません。 – barry