ตีอย่างรวดเร็ว: อ่าน InfoPath XML ได้โดยตรงจากการ SPListItem ใน SharePoint

ผมได้ทำงานในโครงการที่ต้องแยกสิ่งที่แนบจากฟอร์ม InfoPath. มีทรัพยากรที่ดีบางสำหรับแยกฟอร์ม InfoPath (ซึ่งเป็นเพียงแฟ้ม XML, ดังนั้น จึงเป็นจริงค่อนข้างง่าย).

ในขณะที่ผมได้สร้างโครงการ, ผมเริ่ม โดยดาวน์โหลดแบบฟอร์ม InfoPath และบันทึกลงฮาร์ดดิสก์ของฉัน. รหัสของฉัน c# ถูกอ่านโดยตรงจากอินสแตนซ์นั้น. อย่างไรก็ตาม, แบบฟอร์ม InfoPath จริง ๆ อาศัยอยู่ภายในไลบรารีของฟอร์ม SharePoint. ฉันไม่น้อยครึ่งที่ต้อนรับของคนที่ค้นหาวิธีอ่านโดยตรงจากไลบรารี และเกือบได้, ซึ่ง ผมจะได้บันทึกแบบฟอร์มไดเรกทอรีชั่วคราวภายใน และอ่านจาก. อย่างไรก็ตาม, ไม่จำเป็นต้องผ่านห่วงที่เป็นคุณสามารถอ่านได้โดยตรงจากไลบรารี. ส่วนย่อยของโค้ดนี้น้อยแสดงว่า:

/// คลาสนิยามสิ่งที่นี่, รวมทั้งการ:
ส่วนตัว SPFile mySharePointFile; /* ส่วนหนึ่งของ SPList */
// รหัสเพิ่มเติมไปที่นี่ และภายในวิธีการเรียนเรามี:
XmlTextReader textReader;
textReader = ใหม่ XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.ไม่มี;

textReader.Read();

// ถ้าโหนดที่มีค่า

ในขณะที่ (textReader.Read())
{

...และมาเพื่อ...

จะคีย์บิตเหนือคือ ว่า เราสามารถอ่าน InfoPath โดยตรงผ่านการ OpenBinaryStream() วิธีโทรบน SPFile ที่เป็นพารามิเตอร์ไปที่ตัวสร้างบน XmlTextReader. ทำงานที่ดี.

</สิ้นสุด>

สมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

แท็กของ Technorati:

One thought on“ตีอย่างรวดเร็ว: อ่าน InfoPath XML ได้โดยตรงจากการ SPListItem ใน SharePoint

  1. nesreen

    สวัสดี,
    ต้องการความช่วยเหลือในนี้ , มี sharepoint 2007 ไซต์และ infopath กับตารางซ้ำ , สิ่งที่ฉันต้องทำคือเมื่อบันทึกฟอร์มในไลบรารีฟอร์ม sharepoint ต้องวนรอบ และบันทึกข้อมูลลงรายการโดยใช้ตัวจัดการเหตุการณ์การไลบรารีฟอร์ม SP.

    ช่วยใดจะชื่นชมจริง ๆ.

    ขอขอบคุณ

ทิ้งคำตอบไว้

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่. ช่องที่ต้องการถูกทำเครื่องหมาย *