2011-09-25 15 views
5

मैं एक नोड <extra>text1|text2|text3|text4</extra> से चार भागों में एक पाठ को विभाजित करने की कोशिश कर रहा हूं "|" निम्नानुसार 4 नए नोड्स को डिलीमीटर और पुनर्निर्माण के रूप में।क्या xpath में कोई विभाजन कार्य है?

<g:test1>text1</g:test1> 
<g:test2>text2</g:test2> 
<g:test3>text3</g:test3> 
<g:test4>text4</g:test4> 

यहाँ कोड मैं है, जो स्पष्ट रूप से काम नहीं कर रहा है, लेकिन व्याख्या करनी चाहिए कि मैं क्या करने की कोशिश कर रहा हूँ।

<% 
Dim objXML, x 

Set objXML = CreateObject("MSXML2.DOMDocument") 
objXML.async = False 
objXML.setProperty "ServerHTTPRequest", True 
objXML.Load "http://www.thesite.com/v/myxml.xml" 
objXML.setProperty "SelectionLanguage", "XPath" 

Dim xmldoc: set xmldoc = CreateObject("MSXML2.DomDocument") 
xmldoc.async = false 

Dim instruction 
Set instruction = xmldoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8"" standalone=""yes""") 
xmldoc.appendChild instruction 

Dim rss: set rss = xmldoc.createElement("rss") 
xmldoc.appendChild rss 

Dim itemNode2: Set itemNode2 = xmldoc.selectSingleNode(".//rss") 
Dim name: Set name = xmldoc.createAttribute("xmlns:g") 
name.Value = "http://base.google.com/ns/1.0" 
itemNode2.attributes.setNamedItem(name) 

Dim itemNode: Set itemNode = xmldoc.selectSingleNode(".//rss") 
Dim version: Set version = xmldoc.createAttribute("version") 
version.Value = "2.0" 
itemNode.attributes.setNamedItem(version) 
Dim channel: set channel = xmldoc.createElement("channel") 
rss.appendChild channel 

For Each x In objXML.documentElement.selectNodes(".//SAVED_EXPORT") 
    Dim item: set item = xmldoc.createElement("item") 
    channel.appendChild item 

    Dim str1: Set str1 = x.selectSingleNode("extra") 
    Dim gstrarray 
    gstrarray = split(str1.text,"|") 

    Dim gstr1: set gstr1 = xmldoc.createElement("g:test1") 
    gstr1.text =gstrarry(0) 
    item.appendChild gstr1 
    Dim gstr2: set gstr2 = xmldoc.createElement("g:test2") 
    gstr2.text =gstrarry(1) 
    item.appendChild gstr2 
    Dim gstr3: set gstr3 = xmldoc.createElement("g:test3") 
    gstr3.text =gstrarry(2) 
    item.appendChild gstr3 
    Dim gstr4: set gstr4 = xmldoc.createElement("g:test4") 
    gstr4.text =gstrarry(3) 
    item.appendChild gstr4 
Next 
Response.Write xmldoc.xml 
%> 
+0

क्या आप XPath में विभाजित करने के लिए पूछ रहे हैं, या एएसपी में आपका विभाजन क्यों काम नहीं कर रहा है? –

+0

मुझे लगता है कि यदि आप इसे नौसिखिया को समझाते हैं तो दोनों का थोड़ा सा अनुमान है। – user357034

उत्तर

6

वहाँ XPath 1.0 में एक split() (या समतुल्य) कार्य नहीं है।

XP12 2.0 में tokenize() फ़ंक्शन है।

एक XSLT 1.0 का उपयोग कर बंटवारे कार्यक्षमता लागू कर सकते हैं - वहाँ xslt टैग में wtih good answers कई सवाल कर रहे हैं।

+0

इसके लिए धन्यवाद, मैंने सोचा कि आप चारों ओर आते हैं और मेरे लिए जवाब देते हैं :) मूर्ख सवाल, मैं कैसे जानूंगा कि XPATH 2.0 का उपयोग कर सकते हैं या नहीं। मैं वास्तव में यहाँ खो गया हूँ। मैंने पृष्ठों को देखा लेकिन ज्यादा मदद नहीं की। आपकी सहायता के लिए धन्यवाद. – user357034

+0

@ user357034: XPath 2.0 का कोई .NET मूल कार्यान्वयन नहीं है (और SQL सर्वर का XQuery कार्यान्वयन प्रारंभिक कार्य ड्राफ्ट का है)। यदि आप एक अनुपालन XSLT 2.0 या XQuery कार्यान्वयन (जैसे सैक्सन 9 .x (एक विशेष सैक्सन.NET संस्करण) या XQSharp - विशेष रूप से .NET के लिए लिखे गए हैं) का उपयोग कर रहे हैं तो आपके पास XPath 2.0 भी उनमें से एक हिस्सा है। –

संबंधित मुद्दे