Gibt es eine split-Funktion, in xpath?
Ich versuche die Aufteilung von text aus einem Knoten <extra>text1|text2|text3|text4</extra>
in vier teilen "|" als Trennzeichen und rekonstruieren 4 neuen Knoten wie folgt.
<g:test1>text1</g:test1>
<g:test2>text2</g:test2>
<g:test3>text3</g:test3>
<g:test4>text4</g:test4>
Hier ist der code, den ich habe, was natürlich nicht funktioniert, aber sollte erklären was ich zu tun versuche.
<%
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
%>
Sind Sie Fragen, wie split in XPath, oder warum Ihr split in ASP funktioniert nicht?
Ich denke, ein bisschen von beidem, wenn Sie nichts dagegen erklärt es für einen Neuling.
Ich denke, ein bisschen von beidem, wenn Sie nichts dagegen erklärt es für einen Neuling.
InformationsquelleAutor user357034 | 2011-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es nicht eine
split()
(oder gleichwertig) - Funktion, in XPath 1.0.Es ist ein
tokenisierung()
- Funktion, in XPath 2.0.Kann man implementieren-splitting-Funktionalität unter Verwendung von XSLT 1.0 -- es gibt mehrere Fragen mit gute Antworten in der xslt-tag.
Es gibt keine .NET native Implementierung von XPath 2.0 (und SQL Server XQuery-Implementierung eines early working draft). Wenn Sie eine konforme XSLT 2.0-oder XQuery-Implementierung (wie Saxon 9.x (hat eine spezielle Saxon.NET version) oder XQSharp-vor allem geschrieben .NET) dann haben Sie, XPath 2.0 auch als Teil von Ihnen.
InformationsquelleAutor Dimitre Novatchev