給定上述基本XML,應該很容易在現有URL和預期資源類型後面追加路徑。如果你對C#感到滿意,並且你知道有一個且只有一個「定義」元素,這裏是一個自包含的小程序,它可以滿足你的需求(並且假設你正在從字符串中加載XML):
using System;
using System.Xml;
public class parseXml
{
private const string myDomain = "http://www.mysite.com/";
private const string myExtension = ".jsp";
public static void Main()
{
string xmlString = "<definition name='/products/phone' path='/main/something.jsp'> </definition>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
string fqdn = myDomain +
doc.DocumentElement.SelectSingleNode("//definition").Attributes["name"].ToString() +
myExtension;
Console.WriteLine("Original XML: {0}\nResultant FQDN: {1}", xmlString, fqdn);
}
}
您將需要小心上面的SelectSingleNode; XPath表達式假定只有一個「定義」節點,並且您正在從文檔根目錄進行搜索。
從根本上說,值得閱讀關於XML的入門書。 Xml並不困難,它是一種自描述分層數據格式 - 大量嵌套文本,尖括號和引號:)。
一個很好的入門很可能是在W3學校: http://www.w3schools.com/xml/xml_whatis.asp
您可能還需要在流讀了(SAX/StreamReader的)與負載(DOM/XmlDocument的)XML: What is the difference between SAX and DOM?
我也可以提供一個Java的例子,如果你覺得這會有所幫助。
這是非常有幫助的,我聽不懂的邏輯。非常感激! 你可以在PHP中提供一個例子嗎? xml文檔包含數十個「定義」節點,所以我猜想需要循環for yes? 類似於: '<?php $ xml = simplexml_load_file('myxml.xml'); foreach($ xml->定義爲$定義){ echo ..... } ?>' –
不幸的是我不知道PHP :(但邏輯會像這樣工作:(1)閱讀將XML字符串/文件轉換爲XmlDocument對象。(2)如果您想要Xml根節點下的所有「定義」元素的集合,上述XPath表達式仍然可以工作(「//定義」) - 因此將XPath表達式應用於Xml文檔以返回「定義「元素。 (3)一旦你有了「定義」元素的集合,使用foreach循環遍歷它們(如上所述)並構造你的結果FQDN。 - 這有幫助嗎? – AFKAP