今天把校園網站首頁再修改了下,實現了圖片新聞,自動添加,自動讀取。
==
主要實現:
1。從新聞內容提取圖片地址
2。相關性信息保存到xml文件
3。前臺讀取xml
1。簡單的學了學正則表達式,發現真的很好很強大,不過.net 和js 的正則表達式區別還是有些不同
Dim m As Match
reg = New Regex("<img.*?s+src=(?:[""'])?([^""']*)(?:[""'s])+.*?>", RegexOptions.IgnoreCase)
m = reg.Match(mystr)
If m.Success Then
Return m.Groups(1).Value
Else
Return "no"
End If
2。實現了xml讀寫函數類,發現XPath很好用
Dim mXmlDoc As New System.Xml.XmlDocument
Public XmlFile As String
Public Sub New(ByVal File As String)
MyClass.XmlFile = File
MyClass.mXmlDoc.Load(MyClass.XmlFile) '加載配置文件
End Sub
'功能:取得元素值
'參數:node--節點 element--元素名
'返回:元素值 字符型
' $--表示出錯誤
Public Function GetElement(ByVal node As String, ByVal element As String) As String
On Error GoTo Err
Dim mXmlNode As System.Xml.XmlNode = mXmlDoc.SelectSingleNode("//" + node)
'讀數據
Dim xmlNode As System.Xml.XmlNode = mXmlNode.SelectSingleNode(element)
Return xmlNode.InnerText.ToString
Err:
Return "$"
End Function
'
'功能:保存元素值
'參數:node--節點名稱 element--元素名 val--值
'返回:True--保存成功 False--保存失敗
Public Function SaveElement(ByVal node As String, ByVal element As String, ByVal val As String) As Boolean
On Error GoTo err
Dim mXmlNode As System.Xml.XmlNode = mXmlDoc.SelectSingleNode("//" + node)
Dim xmlNodeNew As System.Xml.XmlNode
xmlNodeNew = mXmlNode.SelectSingleNode(element)
xmlNodeNew.InnerText = val
mXmlDoc.Save(MyClass.XmlFile)
Return True
err:
Return False
End Function
End Class
3。js實現讀取xml文件
oXmlDom.async=false;
oXmlDom.load("xml/1.xml");//xml路徑
// alert(oXmlDom.xml);
var aImgLists=new Array();
aImgLists=oXmlDom.documentElement.selectNodes("//imageunits/imageunit");
for (var i=0; i <aImgLists.length; i++) {
slideimages[i]=aImgLists[i].selectSingleNode("imageurl").text;
slidetext[i]=aImgLists[i].selectSingleNode("thetitle").text;
slidelinks[i]=aImgLists[i].selectSingleNode("tolink").text;
}
天煞的腳本調試,一個變量寫成了大寫,調試了一晚上,TMD,還好弄出來了。
js腳本語言先天性要求瀏覽器支持,爲了實現通用性,比解決問題複雜多了。唉,可怕的瀏覽器陷阱!!