ReplaceWith()를 사용하여 노드를 바꾸려고하지만 잘못된 형식의 XML (새 줄과 들여 쓰기가 없음)이 표시됩니다.XElement.ReplaceWith()에 의해 생성 된 형식이 잘못된 XML
이전에이 문제를 겪은 사람이 있습니까?
코드 조각 :
[Test]
public void Test()
{
XDocument document;
using (var reader = XmlReader.Create("C:\\test.xml"))
{
// *** Running this line results in new lines OMITTED ***
document = XDocument.Load(reader);
// *** Running this line results in proper formatting ***
//document = XDocument.Parse(XDocument.Load(reader).ToString());
}
var newNode = new XElement("Node", new XElement("SubNode"));
document.Root.Element("Node").ReplaceWith(newNode);
Console.Out.WriteLine("document = {0}", document);
}
이 단계 재현하기 :
1) C를 만듭니다 : \ test.xml의 다음과 :
<Test>
<Node/>
<Test>
2) 위 코드를 실행하십시오.
이 일부 잘못 형식의 XML의 일부가 발생합니다 :
<Test>
<Node><SubNode /></Node>
</Test>
3)의 주석이 라인 :
document = XDocument.Parse(XDocument.Load(reader).ToString());
4) 다시 조각을 실행합니다.
이 결과는 올바르게 포맷됩니다
<Test>
<Node>
<SubNode />
</Node>
</Test>
당신이 test.xml의 파일의 내용을 포함 할 수 있습니다 :
해킹 당신은 매우 효율적 아니지만, 그것을하는 빠른 방법은, 지정된? –
수정 됨. 해당 파일의 내용은 단지 –
stung