5

これは私がこれまでに持っているものです:

$XML = New-Object System.Xml.XmlDocument
$XML.PreserveWhitespace = $true
$XML.Load($path)
#change some node attributes
$XML.Save($path)

XML ファイルを開いて、次のようなスニペットを取得するとします。

<Node 
Name="tyjytj" 
Number="rthjr" 
Source="rjyrtjrjrtj" 
BinaryDrive="teheherhehtr" />

次のように保存します。

<Node Name="tyjytj" Number="rthjr" Source="rjyrtjrjrtj" BinaryDrive="teheherhehtr" />

しかし、各属性の間に改行を入れたまま、(たとえば) ノードの名前を変更できるようにしたいと考えています。開く/保存する前とまったく同じ形式を維持したい。

4

2 に答える 2

1

あなたの質問に非常によく似た質問に対するこの回答を見てください。

xml 属性の書式設定を保持する方法はないようですが、XmlWriterSettings および XmlWriter クラスの機能を使用して、xml ドキュメントで独自に定義することができます。

次のように、属性間に改行を含めるように指定できます。

$xwSettings = new-object System.Xml.XmlWriterSettings
$xwSettings.NewLineOnAttributes = $true

次に、次の設定とともに XmlWriter を使用してドキュメントを保存します。

$xmlWriter = [Xml.XmlWriter]::Create("c:\temp\newlines.xml", $xwSettings)
$doc.Save($xmlWriter)

(コードはすべて元の回答からのものです。vonPryzへの称賛)

于 2018-05-09T15:02:30.023 に答える
-3

開始タグ内の属性がスペース、改行、またはタブで区切られているかどうかを教えてくれる XML パーサーは世界中にありません。気にする必要はありません。

于 2012-06-29T21:26:41.957 に答える