คำถามติดแท็ก xml

ย่อมาจาก 'eXtensible Markup Language' ภาษามาร์กอัปข้อความสำหรับการถ่ายโอนข้อมูลที่มีโครงสร้าง

2
วิธีการอ่านโค้ด HTML เป็น XML และรับผลเช่นเดียวกับตัวอย่างใน sql?
ฉันมีรหัส HTML เก็บไว้ในฐานข้อมูลและฉันต้องการอ่านมันเป็น XML รหัสของฉัน: http://rextester.com/RMEHO89992 นี่คือตัวอย่างของรหัส HTML ที่ฉันมี: <div> <section> <h4> <span> A </span> </h4> <ul> <li> <span> Ab</span> AD <span> AC </span> </li> <li> <span> Ag</span> <span> AL </span> </li> </ul> <h4> <span> B </span> </h4> <ul> <li> <span> Bb</span> BD <span> BC </span> </li> <li> <span> Bg</span> …
11 sql-server  t-sql  xml 

2
เมื่อแปลงไดนามิก SQL (เคียวรี pivot) ไปยังเอาต์พุต xml ทำไมตัวเลขแรกของวันที่ถูกแปลงเป็นยูนิโคด
ฉันใช้ตัวอย่างที่ยอดเยี่ยมนี้/dba//a/25818/113298จาก Bluefeet เพื่อสร้างเดือยและเปลี่ยนเป็นข้อมูล xml ประกาศพารามิเตอร์ DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); ถัดไปคือ CTE ที่มีรหัสจำนวนมาก endresult ของ CTE จะถูกใส่ใน temp DB (เช่นเดียวกับในตัวอย่าง) SELECT B.[StayDate] -- this is a date dd-mm-yyyy , B.[Guid] INTO #tempDates FROM BaseSelection B การสร้าง cols (เช่นเดียวกับตัวอย่าง) SELECT @cols = STUFF((SELECT distinct ',' +QUOTENAME(convert(char(10), [StayDate] , 120)) …
11 sql-server  xml  pivot 

4
แก้ไข XML: คุณสมบัติเป็นองค์ประกอบ
ฉันมีXMLคอลัมน์ที่มีข้อมูลที่มีโครงสร้างคล้ายกัน: <Root> <Elements> <Element Code="1" Value="aaa"></Element> <Element Code="2" Value="bbb"></Element> <Element Code="3" Value="ccc"></Element> </Elements> </Root> ฉันจะแก้ไขข้อมูลโดยใช้ SQL Server เพื่อเปลี่ยนแต่ละValueแอตทริบิวต์เป็นองค์ประกอบได้อย่างไร <Root> <Elements> <Element Code="1"> <Value>aaa</Value> </Element> <Element Code="2"> <Value>bbb</Value> </Element> <Element Code="3"> <Value>ccc</Value> </Element> </Elements> </Root> ปรับปรุง: XML ของฉันมีลักษณะเช่นนี้: <Root attr1="val1" attr2="val2"> <Elements> <Element Code="1" Value="aaa" ExtraData="extra" /> <Element Code="2" Value="bbb" ExtraData="extra" …
11 sql-server  xml  xquery 

2
ส่งคืนลำดับ xml ที่แอตทริบิวต์ไม่มีอักขระเฉพาะ
พิจารณา XML อย่างง่ายต่อไปนี้: <xml> <customer name="Max"> <email address="me@you.com" /> </customer> <customer name="Erik"> <email address="erik@your-mom.com" /> </customer> <customer name="Brent"> <email address="brentcom" /> </customer> </xml> ฉันต้องการที่จะได้รับรายชื่อของ<Customer>ลำดับที่addressแอตทริบิวต์ของ<email>รายการไม่ได้@ประกอบด้วย ดังนั้นฉันต้องการผลลัพธ์ที่ดูเหมือน: <customer name="Brent"> <email address="brentcom" /> </customer> mcve : DECLARE @x XML = '<xml> <customer name="Max"><email address="me@you.com" /></customer> <customer name="Erik"><email address="erik@your-mom.com" /></customer> <customer name="Brent"><email address="brentcom" /></customer> …
10 sql-server  xml  xquery 

1
แทนที่ค่าขององค์ประกอบ xml ที่พิมพ์อย่างยิ่งใน SQL Server ด้วย XQuery
ได้รับองค์ประกอบที่กำหนดไว้ภายในคอลเลกชัน XML Schema ดังกล่าว: <xsd:element name="xid"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="32" /> </xsd:restriction> </xsd:simpleType> </xsd:element> คุณจะอัพเดทองค์ประกอบโดยใช้ XQuery อย่างไร องค์ประกอบที่พบในnamespace nsในคอลเลกชันคี ฉันพยายามอัปเดตองค์ประกอบข้อความค้นหาด้านล่าง: update cm.item set data.modify( 'declare namespace ns="http://www.anon.com"; replace value of (/ns:*/ns:xid)[1] with "X00011793" cast as element(ns{http://www.anon.com}:xid,#anonymous) ?') where id = 11793 แต่สิ่งนี้สร้างข้อผิดพลาดต่อไปนี้: ข่าวสารเกี่ยวกับ 9301, ระดับ 16, สถานะ 1, บรรทัดที่ …

1
วิธีหลีกเลี่ยงการใช้แบบสอบถามแบบผสานเมื่อทำซ้ำหลายข้อมูลโดยใช้พารามิเตอร์ xml
ฉันกำลังพยายามอัปเดตตารางด้วยอาร์เรย์ของค่าต่างๆ แต่ละรายการในอาร์เรย์มีข้อมูลที่ตรงกับแถวในตารางในฐานข้อมูล SQL Server หากแถวนั้นมีอยู่แล้วในตารางเราจะอัปเดตแถวนั้นด้วยข้อมูลในอาร์เรย์ที่กำหนด มิฉะนั้นเราจะแทรกแถวใหม่ในตาราง ฉันได้อธิบายโดยทั่วไปเพิ่มขึ้น ตอนนี้ฉันกำลังพยายามทำให้สำเร็จในโพรซีเดอร์ที่เก็บไว้ซึ่งใช้พารามิเตอร์ XML เหตุผลที่ฉันใช้ XML และไม่ใช่พารามิเตอร์ที่มีค่าเป็นตารางเนื่องจากฉันจะต้องสร้างประเภทที่กำหนดเองใน SQL และเชื่อมโยงประเภทนี้กับกระบวนงานที่เก็บไว้ หากฉันเปลี่ยนบางสิ่งบางอย่างในขั้นตอนการจัดเก็บหรือ db schema ของฉันลงที่ถนนฉันจะต้องทำซ้ำทั้งขั้นตอนการจัดเก็บและประเภทที่กำหนดเอง ฉันต้องการหลีกเลี่ยงสถานการณ์นี้ นอกจากนี้ความเหนือกว่าที่ TVP มีเหนือ XML ไม่มีประโยชน์สำหรับสถานการณ์ของฉันเพราะขนาดอาร์เรย์ข้อมูลของฉันจะไม่เกิน 1,000 ซึ่งหมายความว่าฉันไม่สามารถใช้โซลูชันที่เสนอที่นี่: วิธีแทรกหลายระเบียนโดยใช้ XML ใน SQL Server 2008 นอกจากนี้ยังมีการอภิปรายที่คล้ายกันที่นี่ ( UPSERT - มีทางเลือกที่ดีกว่าสำหรับ MERGE หรือ @@ rowcount หรือไม่ ) แตกต่างจากที่ฉันขอเพราะฉันพยายามเพิ่มหลายแถวไปยังตาราง ฉันหวังว่าฉันจะใช้ชุดคำสั่งต่อไปนี้เพื่อเพิ่มค่าจาก xml แต่นี่จะไม่ทำงาน วิธีการนี้ควรทำงานเมื่ออินพุตเป็นแถวเดียว begin tran …

1
วิธีที่ง่ายที่สุดในการแก้ไขรายการเดียวในคอลัมน์ XML?
เนื่องจากฉันเข้าใจ MS SQL Server Management Studio ไม่อนุญาตให้แก้ไข / แทนที่รายการในคอลัมน์ XML ผ่าน GUI โดยตรง (คัดลอก / วางไม่ทำงาน ฯลฯ ) ตัวเลือกที่ง่ายที่สุดในการแทนที่รายการเดียวในคอลัมน์ XML คืออะไร ฉันต้องใช้สิ่งที่แตกต่างจาก UPDATE / REPLACE สำหรับค่าคอลัมน์ XML หรือไม่

1
ตัวแปรสำหรับชื่อองค์ประกอบ
ฉันมีรหัส tSQL นี้ซึ่งใช้งานได้: SELECT c.logguid, a.b.value('./PropertyValue', 'varchar(max)') asd FROM [dnn].[dbo].[EventLog2] c cross apply sss.nodes('/LogProperties/LogProperty[PropertyName=sql:variable("@x") and PropertyValue=sql:variable("@y")]') as a(b) อย่างไรก็ตามสิ่งที่ฉันต้องการที่จะสามารถทำได้คือการส่งผ่านรายการแบบไดนามิกของค่าจำนวนมากซึ่งเป็น OR ระหว่างแต่ละค่าเช่น SELECT c.logguid, a.b.value('./PropertyValue', 'varchar(max)') asd FROM [dnn].[dbo].[EventLog2] c cross apply sss.nodes( '/LogProperties/LogProperty[PropertyName=sql:variable("@x") and PropertyValue=sql:variable("@y") or PropertyName=sql:variable("@a") and PropertyValue=sql:variable("@b") ]' ) as a(b) มีวิธีทำเช่นนี้หรือไม่?
9 t-sql  xml 

2
ประเภทข้อมูลที่จะเก็บข้อมูล XML ใน: VARCHAR (MAX) หรือ XML
ฉันกำลังกำหนด schema สำหรับชุดทรัพยากรใหม่โดยใช้ SQL Server 2008 ... ในกรณีนี้แต่ละระเบียน ( เช่นแถว ) จะต้องเก็บชิ้นส่วน XML เมื่อเวลาผ่านไป; แม้ว่าจะไม่บ่อย ฉันจะต้องสืบค้น XML เพื่อค้นหาองค์ประกอบและค่าแอตทริบิวต์ หากปล่อยทิ้งไว้กับสิ่งที่ฉันทำเองฉันมักจะใช้ประเภทข้อมูลxmlแม้ว่าฉันจะถูกชักนำให้เชื่อว่าสิ่งนี้มีปัญหา นั่นทำให้ฉันมีคำถาม รับสถานการณ์นี้สิ่งที่ปัจจัยที่ฉันควรจะมีการพิจารณาเมื่อพยายามที่จะตัดสินใจระหว่างการจัดเก็บ XML ในXMLคอลัมน์เทียบกับvarchar (MAX)คอลัมน์ ถ้ามันช่วย ... นี่คือรายละเอียดเพิ่มเติม: ไม่มีการตัดสินใจเกี่ยวกับการใช้สคีมาสำหรับชิ้นส่วนเหล่านี้ ( เช่น XSD's ) ขนาดของชิ้นส่วนจะมีตั้งแต่เล็กไปจนถึงใหญ่มาก XML ทั้งหมดจะมีรูปแบบที่ดี ในแต่ละวันจะมีการรวบรวมชิ้นส่วนได้มากถึง 10,000 ชิ้นพร้อมการสนับสนุนการสืบค้นออนไลน์ที่จำเป็นสำหรับ ~ 3 เดือน การค้นหากับ XML จะเกิดขึ้นตลอดทั้งวัน แต่ควรอยู่ในสถานะที่มีคำสั่งประเภทนี้พร้อมกันเล็กน้อย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.