รหัสการล้างข้อมูลชื่อโหนด XML

ฉันกำลังพยายามสร้างไฟล์ XML ตามเขตข้อมูลจากตาราง และฉันต้องการให้โหนดตั้งชื่อตามค่าในเขตข้อมูลจากตาราง ปัญหาคือบางครั้งค่าที่ป้อนในคอลัมน์นั้นมีช่องว่างและอักขระอื่นๆ ที่ไม่ได้รับอนุญาตในชื่อโหนด

ใครบ้างมีรหัสใด ๆ ที่จะล้างสตริงที่ส่งผ่านและแทนที่อักขระที่ไม่ถูกต้องด้วยข้อความแทนที่เพื่อให้สามารถย้อนกลับที่ปลายอีกด้านหนึ่งและรับค่าดั้งเดิมกลับคืนมา

ฉันใช้ .net (vb.net แต่ฉันสามารถอ่าน/แปลง c# ได้)


person MikeScott8    schedule 17.09.2008    source แหล่งที่มา


คำตอบ (3)


มันอาจจะง่ายกว่าถ้าคุณเก็บค่าดั้งเดิมไว้ถ้ามันผิดกฎหมายเป็นชื่อโหนดในแอตทริบิวต์ จากนั้นคุณก็จะไม่ต้องกังวลกับการแปลที่ซับซ้อน

person Eric Schoonover    schedule 17.09.2008

ตามความเป็นจริง ฉันอยากจะบอกว่าถ้าคุณไม่สามารถควบคุมข้อมูลได้อย่างสมบูรณ์ กระบวนการแปลก็จะไม่ทำงาน ดังนั้นฉันจึงจัดเก็บข้อมูลต้นฉบับเป็นลำดับที่สองเป็นแอตทริบิวต์หรือโหนดลูก

person EBGreen    schedule 17.09.2008

คุณไม่ได้พูดในโพสต์ต้นฉบับว่าภาษาอะไร ดังนั้นนี่คือรูปแบบ regex ที่ควรช่วยคุณเริ่มต้น นี่เป็นเรื่องด่วนดังนั้นคุณจะต้องทดสอบ

([^A-Za-z0-9])|(\s)|(\t+)|(\c+)
person Community    schedule 17.09.2008
comment
ขอบคุณสำหรับ regex นั้นและฉันจะเล่นกับมันและดูว่าฉันสามารถทำอะไรได้บ้าง - person MikeScott8; 17.09.2008
comment
วายดับบลิว. ฉันได้ทำการเปลี่ยนแปลงเล็กน้อยกับมัน ขอย้ำอีกครั้งว่ามันรวดเร็วและฉันไม่ได้ทดสอบอย่างแน่นอน หวังว่ามันจะช่วยได้ - person ; 17.09.2008
comment
ฉันคิดว่า regex อาจจะใช้งานได้ แต่คุณวางแผนที่จะแปลกลับอย่างไร - person EBGreen; 17.09.2008
comment
นั่นคือปัญหา การแปลกลับเป็นเรื่องยากและฉันคิดว่าเกิดข้อผิดพลาดได้ง่าย นั่นเป็นเหตุผลที่ฉันแนะนำให้จัดเก็บค่าดั้งเดิมในทางใดทางหนึ่ง (เป็นค่าแอตทริบิวต์) - person Eric Schoonover; 18.09.2008