हमें एक विक्रेता से एक एक्सएमएल दस्तावेज़ मिल रहा है जिसे हमें अपने स्टाइलशीट का उपयोग करने पर एक्सएसएल ट्रांसफॉर्म करने की आवश्यकता है ताकि हम परिणामी एचटीएमएल को पीडीएफ में परिवर्तित कर सकें। वास्तविक स्टाइलशीट को XML दस्तावेज़ में ?xml-stylesheet
परिभाषा के href
विशेषता में संदर्भित किया गया है। क्या कोई तरीका है कि मैं उस यूआरएल को सी # का उपयोग कर प्राप्त कर सकता हूं? मुझे विक्रेता पर भरोसा नहीं है कि यूआरएल को न बदलें और स्पष्ट रूप से इसे हार्डकोड नहीं करना चाहते हैं।मैं <? Xml-styleheet> नोड से href विशेषता मान कैसे प्राप्त कर सकता हूं?
पूर्ण ?xml-stylesheet
तत्व के साथ एक्सएमएल फ़ाइल के शुरू होने से इस तरह दिखता है:
XDocument xDoc = ...;
var cssUrlQuery = from node in xDoc.Nodes()
where node.NodeType == XmlNodeType.ProcessingInstruction
select Regex.Match(((XProcessingInstruction)node).Data, "href=\"(?<url>.*?)\"").Groups["url"].Value;
या LINQ वस्तुओं के लिए
var cssUrls = (from XmlNode childNode in doc.ChildNodes
where childNode.NodeType == XmlNodeType.ProcessingInstruction && childNode.Name == "xml-stylesheet"
select (XmlProcessingInstruction) childNode
into procNode select Regex.Match(procNode.Data, "href=\"(?<url>.*?)\"").Groups["url"].Value).ToList();
xDoc:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://www.fakeurl.com/StyleSheet.xsl"?>
मैं डोम या लिंककॉक्सएमएल का उपयोग करना पसंद करूंगा, लेकिन जितना अधिक मैं इसे खो देता हूं उतना ही ऐसा लगता है कि यह एकमात्र विकल्प हो सकता है। –
हाँ, मैं भी इसके साथ संघर्ष कर रहा हूं। अगर कोई तरीका था तो मैं प्रोटीन इंस्ट्रक्शन को एलीमेंट की तरह व्यवहार कर सकता था, यह आसान होगा। –