ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingขอถามเกี่ยวกับ xml หน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอถามเกี่ยวกับ xml หน่อยครับ  (อ่าน 1089 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
kanin03
สมุนแก๊งเสียว
*

พลังน้ำใจ: 53
ออฟไลน์ ออฟไลน์

กระทู้: 500



ดูรายละเอียด
« เมื่อ: 31 สิงหาคม 2013, 18:49:44 »

คือว่าผมเขียน python code ดึงข้อมูลจาก xml โดยข้อมูลจะเป็นลักษณะนี้
โค๊ด:
<data>
  <name>test</name>
  <lastname>test</lastname>
</data>
<data>
  <name>test1</name>
  <lastname>test2</lastname>
</data>
ทีนี้พอดึงแต่ละ tag มาก็ใช้งานได้ปกติ

แต่ถ้า xml ผมเป็นแบบนี้
โค๊ด:
<data>
  <name>test</name>
  <lastname>test</lastname>
</data>
<data>
  <name>test1</name>
  </lastname>
</data>
มันจะเออเร่อเลยอะครับเพราะตรง tag lastname มันดึงมาไม่ได้ตัวแปลผมจะเป็น None type จากที่ดึงได้จะเป็น string
ผมควรจะแก้ไขยังไงดีครับแบบว่าจะวนลูปเชคทุกตัวแปรยังไงว่าถ้าเป็น None type ให้แก้เป็น string แล้วใส่ค่า null ไปแทนอ่าครับ
หรือมีวิธีอื่นๆไหมอ่าครับ  wanwan017
บันทึกการเข้า
seowizard
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 1,117



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 31 สิงหาคม 2013, 19:12:53 »

ต้องเข้าใจ concept ของ xml ก่อนครับ 

format ของ xml ต้องมี tag เปิดเปิด และมี root element

ในไฟล์ที่ 2 ที่คุณบอกว่ามีแต่ </lastname> แสดงว่าไม่มี tag เปิดนั่นแสดงว่าเป็นไฟล์ xml ที่ไม่สมบูรณ์และไม่ถูกต้อง
บันทึกการเข้า
kanin03
สมุนแก๊งเสียว
*

พลังน้ำใจ: 53
ออฟไลน์ ออฟไลน์

กระทู้: 500



ดูรายละเอียด
« ตอบ #2 เมื่อ: 31 สิงหาคม 2013, 19:47:35 »

ต้องเข้าใจ concept ของ xml ก่อนครับ 

format ของ xml ต้องมี tag เปิดเปิด และมี root element

ในไฟล์ที่ 2 ที่คุณบอกว่ามีแต่ </lastname> แสดงว่าไม่มี tag เปิดนั่นแสดงว่าเป็นไฟล์ xml ที่ไม่สมบูรณ์และไม่ถูกต้อง

ครับคือว่าทางต้นทางเขามาไม่ถูกต้องอ่าครับผมเป็นคนดึงเอามาใช้จะแก้ปัญหานี้ยังไงดีครับ  wanwan017
บันทึกการเข้า
goldxp
สมุนแก๊งเสียว
*

พลังน้ำใจ: 73
ออฟไลน์ ออฟไลน์

กระทู้: 559



ดูรายละเอียด
« ตอบ #3 เมื่อ: 31 สิงหาคม 2013, 20:22:37 »

http://htmlpurifier.org/
แต่ที่ถูกต้องกว่าคือแจ้งให้ต้นทางแก้ไขครับ เพราะถ้าข้อมูลผิดทุกโปรแกรมก็ต้องเจอข้อมูลผิดปกติแบบเดียวกันหมด
บันทึกการเข้า

ohmohm
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 170
ออฟไลน์ ออฟไลน์

กระทู้: 3,092



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 05 กันยายน 2013, 22:43:38 »

Python ใช่ไหมครับ งั้นลอง Beautiful Soup ติดตั้งโดย
โค๊ด:
sudo easy_install beautifulsoup

ตั้วอย่าง
โค๊ด:
from BeautifulSoup import BeautifulSoup

doc = """<data>
  <name>test</name>
  <lastname>test</lastname>
</data>
<data>
  <name>test1</name>
  </lastname>
</data>"""
soup = BeautifulSoup(doc)
print soup.prettify()

บันทึกการเข้า
godzillaser
สมุนแก๊งเสียว
*

พลังน้ำใจ: 43
ออฟไลน์ ออฟไลน์

กระทู้: 619



ดูรายละเอียด
« ตอบ #5 เมื่อ: 05 กันยายน 2013, 23:38:58 »

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

หน้า: [1]   ขึ้นบน
พิมพ์