Bagaimana cara memangkas spasi dalam string XML tidak termasuk header namespace XML di C#?

pemrograman


Saya ingin memangkas spasi di string xml tidak termasuk header namespace xml di c#. String xml saya seperti di bawah ini. Saya ingin memangkas nilai simpul xml saja tidak termasuk header namespace (getInstallmentHistoryReply xmlns:NS1=”urn:esbbank.com/gbo/xml/schemas/v1_0/”)

XML
<getInstallmentHistoryReply xmlns:NS1="urn:esbbank.com/gbo/xml/schemas/v1_0/">
	<eAI_HEADER>
		<serviceName>GET.FINANCE.DETAIL</serviceName>
		<serviceType>SYNC</serviceType>
		<serviceVersion>1.0</serviceVersion>
		<client>ADIB</client>
		<clientChannel>DDS</clientChannel>
		<msgChannel>HTTP</msgChannel>
		<requestorLanguage>E</requestorLanguage>
		<securityInfo>
			<authentication>
				<UserId>DDS</UserId>
				<Password>XXXXXXXXXX</Password>
			</authentication>
		</securityInfo>
		<returnCode>0000</returnCode>
	</eAI_HEADER>
</getInstallmentHistoryReply>

Apa yang saya coba:

Kode saya seperti di bawah ini

string ResponseXML_Updated = ResponseXML.Replace("NS1:getInstallmentHistoryReply", "getInstallmentHistoryReply");
            
            string ResponseXML_Trimmed = System.Text.RegularExpressions.Regex.Replace(ResponseXML_Updated, @"(([^\s]+)\s+)", "$2"); 
           
            
            System.Xml.XmlDocument xd1 = new System.Xml.XmlDocument();
            xd1.LoadXml(ResponseXML_Trimmed);

Solusi 1

Dua hal – pertama, Anda perlu menghapusnya <pre> dari xml Anda atau tidak akan diproses bahkan sebelum Anda mulai “memotongnya”.

Kedua, Anda tidak dapat menghapus semua spasi secara membabi buta: jika Anda melihat string yang Anda buat:

XML
<getInstallmentHistoryReplyxmlns:NS1="urn:esbbank.com/gbo/xml/schemas/v1_0/"><eAI_HEADER><serviceName>GET.FINANCE.DETAIL</serviceName>...

Anda dapat melihat bahwa ini bukan XML yang valid: memerlukan spasi di antara getInstallmentHistoryReply tag dan itu xmlns: atribut atau keseluruhannya tampak seperti nama atribut yang lebih panjang tanpa tag yang tepat sebelumnya.
Saya menyarankan Anda mengubah regex Anda untuk hanya menghapus spasi setelah a > penanda akhir tag

コメント

タイトルとURLをコピーしました